Sascha Knappe: Zugriff auf Array

Beitrag lesen

Hallo,

ich habe folgendes Problem...
Ich möchte eine Ergebnismenge in eine Tabelle legen und spaltenweise abwärts, nach Namen sortiert, ausgeben.
Nach einer Datenbankabfrage packe ich die Ergebnisse  mit "setter-Methoden" in ein Objekte und per array_push ins Array $arr_rs. Es gibt genau 208 Ergebnisse, also 208 Objekte.
Ich gehe wie folgt vor:

$cols = 4;
 $i = 1;
 $herstellerHandler = new HerstellerHandler();
 $arr_rs = $herstellerHandler->getAllHersteller($con);
 $anzahl = count($arr_rs);

function ausgabeInSpalten($cols, $arr_rs)
 {
     #$cols = 5;
     $anzahl = count($arr_rs);
     #echo 'Anzahl: '.$anzahl.'<br>';
     $anzahl_pro_array = intval($anzahl / $cols);
     #echo 'Anzahl pro Array: '.$anzahl_pro_array.'<br>';
     $rest = $anzahl - ($cols * $anzahl_pro_array);
     #echo 'Rest: '.$rest.'<br>';
     if($rest > 0)
     {
      $arr_anzahl = $anzahl_pro_array +1;
     }
     else
     {
      $arr_anzahl = $anzahl_pro_array;
     }
     $arr_result = array();
     $arr_result = array_chunk($arr_rs, $arr_anzahl);
     $string = '<table border="0" width="80%">';
     $anz_letztes_array = count($arr_result[$cols-1]);
     $diff = $arr_anzahl - $anz_letztes_array;
     #echo 'Ergebnis: '.$arr_anzahl.' - '.$anz_letztes_array.' = '.$diff.'<br>';
     if($diff > 0)
     {
      $arr_result[$cols-1] = array_pad($arr_result[$cols-1], $diff+2, '&nbsp;');
     }
     #echo '<pre>';
     #print_r($arr_result);
     #echo '</pre>';

for($r = 0; $r <= $arr_anzahl; $r++)
     {
      $string.= '<tr>';
      $objekte1 = $arr_result[0][$r];
      $objekte2 = $arr_result[1][$r];
      $objekte3 = $arr_result[2][$r];
      $objekte4 = $arr_result[3][$r];
      #echo '<pre>';
      #print_r($objekte1);
      #echo '</pre>';
      foreach($objekte1 as $objekt1)
      {
       $string.= '<td><a href="hersteller_detail.php?hersteller_id='.$objekte1->getHerstellerID().'">'.$objekte1->getName().'</a></td>';
       break;
      }
      foreach($objekte2 as $objekt2)
      {
       $string.= '<td><a href="hersteller_detail.php?hersteller_id='.$objekte2->getHerstellerID().'">'.$objekte2->getName().'</a></td>';
       break;
      }
      foreach($objekte3 as $objekt3)
      {
       $string.= '<td><a href="hersteller_detail.php?hersteller_id='.$objekte3->getHerstellerID().'">'.$objekte3->getName().'</a></td>';
       break;
      }
      foreach($objekte4 as $objekt4)
      {
       $string.= '<td><a href="hersteller_detail.php?hersteller_id='.$objekte4->getHerstellerID().'">'.$objekte4->getName().'</a></td>';
       break;
      }
      $string.= '</tr>';
  }
     $string.= '</table>';
  return $string;

}
 echo ausgabeInSpalten($cols, $arr_rs);

Es gibt die Warnung: Warning: Invalid argument supplied for foreach() in I:\wampp2\htdocs\humidoronline\zigarren.php on line 190

Bekomme so aber trotz der Warnung meine richtige Ausgabe.
Lasse ich die foreach-Schleifen weg, dann funktioniert meine Ausgabe nicht mehr.
Wie greife ich richtig auf meine Objekte zu?

Vielen Dank für eure Antworten.

Schönen Gruß aus München

die knappschaft

--

sh:(  fo:|  ch:?  rl:°  br:$,<,>  n4:&  ie:|  mo:|  va:)  de:]  zu:)  fl:|  ss:|  ls:[,#