2009-06-14 21 views
3

In meinem Code bekomme ich Daten (drei Spalten) von einer SQL-DB und ich möchte die Zeilen in einem assoziativen PHP-Array speichern. Das Array muss mehrdimensional sein, weil ich die Zeilen-ID aus der Datenbank als Schlüssel verwendet werden soll, so dass ich Werte wie folgt holen kann:Zweidimensionales assoziatives Array in PHP

$ Artikel [ „f84jjg“] [ „name“]

$ Artikel [ "245"] [ "code"]

ich habe versucht, den folgenden Code verwenden, aber es funktioniert nicht:

while ($row = mysql_fetch_row($sqlresult)) 
{ 
    $products = array($row[0] => array(
      name => $row[1], 
      code => $row[2] 
     ) 
    ); 
} 

auch, wie soll ich den Schlüssel Referenz wenn es aus einer Var ibar? Was ich machen möchte ist:

$productName = $products[$thisProd]["name"]; 

Wird das funktionieren?

Antwort

8

Dies sollte es tun, vorausgesetzt, row[0] ‚s Inhalt ist eine eindeutige Kennung (sonst könnte man eine Reihe überschreiben):

while($row = mysql_fetch_row($sqlresult)) { 
    $products[$row[0]] = array(
     'name' => $row[1], 
     'code' => $row[2] 
    ); 
} 

Sie müssen Anführungszeichen um die Array-Schlüssel setzen, und ein Array kreierten Array von Arrays.

Beachten Sie auch, Sie mysql_fetch_assoc statt mysql_fetch_row verwenden könnte, mit dem Sie die Array-Schlüssel als den Spaltennamen geben würde, die diese viel einfacher/Reiniger machen würde:

while($row = mysql_fetch_assoc($sqlresult)) { 
    $products[$row['myidcolumn']] = $row; 
} 

Nachdem Sie dies tun, den Code beschrieben würde funktionieren.