der henry: php Associative Arrays Schlüssel löschen

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!!!

  1. 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

    --
    sumpsi - posui - obstruxi
  2. Dieser Beitrag wurde gelöscht: unsinn
  3. Hallo Henry,

    nach einem unsinnigen Anlauf:

    $namen = array_column($row, 'name') 
    

    sollte deinen Zweck erfüllen.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. 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