2017-07-19 2 views
0

ich eine SQL-Abfrage in PHP leite und Rückgabe der Ergebnisse wie diesePopulate PHP Array mit mehreren Zeilen

Name 
Joe 
Jack 
Jerri 
Jerry 

Ich brauche diese in eine PHP-Array zu analysieren und leider haben die Methode, die ich in der Vergangenheit verwendet Das Hinzufügen zu einem PHP-Array ist nicht mehr relevant, da ich mehrere Zeilen zurückgebe. Wie würde ich diese Syntax ändern, um eine Spalte mit mehreren Zeilen zu berücksichtigen, um mein PHP-Array zu füllen?

$rows = $db->loadRowList(); 
$output = array(); 
foreach ($rows as $row) { array_push($output, $row); } 
$data = json_encode($output[0]); 

Antwort

1

TL; DR: Verwenden Sie loadAssocList('id', 'name')


loadRowList() liefert ein indiziertes Array von indizierten Arrays aus den Tabellen Datensätze von der Abfrage zurückgegeben

So werde ich davon ausgehen, Das Array sieht in etwa so aus:

Array 
(
    [0] => Array 
     (
      [0] => Joe 
     ) 

    [1] => Array 
     (
      [0] => Jack 
     ) 

    [2] => Array 
     (
      [0] => Jerri 
     ) 

    [3] => Array 
     (
      [0] => Jerry 
     ) 
) 

Sie können array_column() PHP verwenden, um einen einzigen Indexwert von jedem Kind Array zu holen:

$rows = $db->loadRowList(); 
$output = array_column($rows, 0); 

$output jetzt ein Array suchen, wie enthalten:

Array 
(
    [0] => Joe 
    [1] => Jack 
    [2] => Jerri 
    [3] => Jerry 
) 

Eine Verbesserung, die wir hier machen können besteht darin, ein assoziatives Array zu verwalten, das die Spaltennamen Ihrer Datenbank ihren Werten zuordnet. loadAssocList() kann da helfen.

$rows = $db->loadAssocList(); 
$output = array_column($rows, 'name'); 

Hinweis, die wir verwenden nun den "name" Index statt 0.

Dies kann sogar noch weiter durch die Parameter loadAssocList() Verwendung verbessert werden:

loadAssocList($key, $column) gibt ein assoziatives Array, indexiert auf ‚Schlüssel‘, der Werte aus der Spalte mit der Bezeichnung ‚Spalte‘ von der Abfrage zurück

$ouput = $db->loadAssocList('id', 'name'); 
:

mit dieser Methode können wir ein einzelnes Array in ID => Name Schlüsselwert-Format erhalten