Mehrere mySQL-Ergebnisse in einer Variable zusammen fassen

Dragosius

Erfahrenes Mitglied
Hallo,

ich habe nach einer mySQL-Abfrage folgendes durchgeführt:
PHP:
$daten = mysqli_fetch_all($result2, MYSQLI_ASSOC);

Anschließend sah über var_dump mein Ergebnis folgendermaßen aus:
array(3) { [0]=> array(1) { ["po_id"]=> string(2) "35" } [1]=> array(1) { ["po_id"]=> string(2) "37" } [2]=> array(1) { ["po_id"]=> string(2) "39" } }

Wie kann ich die Werte nun alle Komma separiert in eine Variable packen?
Irgendwie bekomme ich das leider nicht hin.

Angeblich soll das mit implode funktionieren, nur dann bekomme ich jeweils nur das Wort "array" Komma separiert ausgegeben.


Vielen Dank
 
Als erstes schreiben wir den dump mal in lesbare Form
Code:
array(3) { 
    [0]=> array(1) { 
        ["po_id"]=> string(2) "35" 
    } 
    [1]=> array(1) { 
        ["po_id"]=> string(2) "37" 
    } 
    [2]=> array(1) {
        ["po_id"]=> string(2) "39" 
    } 
}

Zur Lösung. Du musst die po_id in einen Array bringen und diesen dann mit implode() zusammenfügen
PHP:
$result2 = array(
    array("po_id"=> "35"),
    array("po_id"=> "37"), 
    array("po_id"=> "39")
);
//Klasisch mit einer Schleife
$list1 = array();
foreach ($result2 as $val){
    $list1[] = $val['po_id'];
}
echo implode(',', $list1);  //35,37,39
echo '<br />';
//Mit einer Lambda-Funktion (anonymer Funktion)
echo implode(',', array_map(function($val){return $val['po_id'];}, $result2));  //35,37,39
 
Zurück