php Associative Arrays Schlüssel löschen
der henry
- php
Hallo
ich bekomme aus der Datenbank ein Array zurück, das ich dann an JS übergeben will. Dazu reichen mir aber der value des jeweiligen index.
$db_result = mysqli_query($db_link, $sql);
$row = mysqli_fetch_all($db_result, MYSQLI_ASSOC);
$db_link->close();
// $plcVarname = array_values($row);
// echo json_encode($plcVarname);
Das Array sieht nachfolgend aus, bzw. wird nachfolgend gelesen
$row[0]["name" => "ANNA"]
Ich möchte jetzt aus diesem Array nur den value in ein Array kopieren, wenn möglich jedoch ohne Schleife
Zum Schluss solle es ein Array geben =>
$myNameArray = ("ANNA","HANS", "OTTO" ....)
Mit "array_values" komme ich nicht weiter ...
Vielen Dank!!!
Hallo Henry,
du hast eine Schleifenphobie?
Ich würde vermuten, dass Du das mit PDO direkt hinbekommst, mit der fetchAll-Methode von PDOStatement, und mit Verwendung von PDO::FETCH_COLUMN als Modus. Mit mysqli sehe ich diese Möglichkeit nicht. Da braucht es eine Folgeverarbeitung. Oder die mysqli_fetch_column-Funktion, die dann aber in einer Schleife die Werte einsammeln muss.
Eine Art, im Post-Processing die Schleife zu umgehen, wäre array_map, hier mit einer Pfeil-Funktion (ab PHP 7.4):
$names = array_map(fn(array $entry): string => $entry['name'], $row);
Die Type Hints kann man auch weglassen. Und $row sollte besser $rows heißen…
Aber vermieden wird die Schleife dadurch nicht. Nur versteckt, in array_map, um den Preis einer Callback-Funktion.
Rolf
Hallo Henry,
nach einem unsinnigen Anlauf:
$namen = array_column($row, 'name')
sollte deinen Zweck erfüllen.
Rolf
Hallo Rolf,
das war genau richtig, vielen Dank !!!
du hast eine Schleifenphobie?
wenn es mit einem Befehl geht, warum dann noch kompliziert mit Schleifen 😂
henry