Foreach Jedes N te Element

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Foreach Jedes N te Element

    Howdy Freunde,

    ich lese mir aus der DB mittels While meine Daten in ein mehrdimensionales Array.

    PHP Code:
    $cool[$jop['Name']] = $jop
    Ich gebe sie anschließend via Foreach aus.

    PHP Code:
    foreach ($cool as $file=>$jop)
        {

    Und jeweils drei dieser Elemente des Arrays sollen durch einen DIV container eingekesselt sein. Dafür setze ich vor und nach dem Foreach loop eine For schleife, wobei n die Anzahl der Elemente des Arrays entspricht.

    PHP Code:
    for($is=0;$is<=$n;$is++)
        {
        
        if(
    $is%3){$prot .= "<div class=\"row\">"; echo "$is A ";}
        
        } 
    Doch das sieht nicht nur fürchterlich aus, sondern funktioniert auch nicht so wie ich es mir vorstelle. Doch leider fehlt meinem selbst angeeigneten Wissen das Nötige Know How und ich würde mich über eine Denkstütze sehr Freuen, wie ich es am saubersten Umsetzen kann.

    Beste Grüße

  • #2
    Warum addierst du in der For-Schleife nicht einfach 3 statt 1?

    Comment


    • #3
      Ansatz mit array_chunk:

      PHP Code:
      <?php

      $data 
      range('A''Z');

      foreach (
      array_chunk($data3) as $chunk) {
          
      printf("<div class=\"row\">%s</div>\n"implode(', '$chunk));
      }

      // <div class="row">A, B, C</div>
      // <div class="row">D, E, F</div>
      // <div class="row">G, H, I</div>
      // <div class="row">J, K, L</div>
      // <div class="row">M, N, O</div>
      // <div class="row">P, Q, R</div>
      // <div class="row">S, T, U</div>
      // <div class="row">V, W, X</div>
      // <div class="row">Y, Z</div>

      Comment


      • #4
        Moin! Danke, der zweite Tipp sieht schon vielversprechend aus. Allerdings frage ich mich, wie ich die Range beim einem assoziativen Array bestimmen kann. Das array sieht folgendermaßen aus:

        PHP Code:
        Array (     [xxy] => Array         (             [0] => xv             [Offern] => xv             [1] => xv             [desc] => xv             [2] => xv             [opreis] =>xy             [3] => xy             [preis] => xy             [4] => xy             [BildName] => xy             [5] => xy             [path] => xy             [6] => xy             [katname] => xy         )  ) 
        Und enthält eine unbestimmte Anzahl an Elementen.

        Comment


        • #5
          range() ist lediglich eine praktische Funktion, um ein gefülltes Array zu erzeugen. So habe ich es mir erspart, für das Beispiel array('A', 'B', 'C', …, 'X', 'Y', 'Z'); tippen zu müssen. Mit dem folgenden array_chunk()-Aufruf hat das nichts zu tun.

          Comment

          Working...
          X