Aktueller Standort: Startseite> Neueste Artikel> Wie extrahiere ich eine Spalte im Ergebnis von mysqli_result in ein Array? Verwenden Sie Array_Column (), um es einfach zu lösen

Wie extrahiere ich eine Spalte im Ergebnis von mysqli_result in ein Array? Verwenden Sie Array_Column (), um es einfach zu lösen

M66 2025-07-18

Wenn Sie PHP zum Betrieb einer MySQL -Datenbank verwenden, erhalten viele Personen ein MySQLi_Result -Objekt, nachdem Sie mySQLI_Query verwendet haben, um eine Abfrage auszuführen. Manchmal möchten wir nur die Daten einer Spalte extrahieren, z. B. alle Benutzernamen und alle IDs, und sie in ein Array einfügen. Zu diesem Zeitpunkt ist manuell, während die Schleife tatsächlich ein bisschen ausführlich ist. Tatsächlich kann Ihnen das integrierte Array_Column () von PHP einfach damit umgehen.

In diesem Artikel werden Sie unterrichtet, wie Sie eine Spalte aus mySQLi_Result mit Array_Column () schnell extrahieren können.

Grundabfrage

Nehmen wir an, wir haben eine Benutzertabelle -Benutzer mit Fields -ID und Benutzername . Wir wollen alle Benutzernamen herausnehmen, um ein Array zu bilden.

 <?php
$mysqli = new mysqli('localhost', 'db_user', 'db_pass', 'db_name');
if ($mysqli->connect_error) {
    die('Verbindung ist fehlgeschlagen:' . $mysqli->connect_error);
}

$sql = "SELECT id, username FROM users";
$result = $mysqli->query($sql);
if (!$result) {
    die('Abfrage fehlgeschlagen:' . $mysqli->error);
}

Zu diesem Zeitpunkt ist $ Ergebnis ein MySQLI_Result -Objekt. Wir müssen es in ein Array umwandeln, um Array_Column () zu verwenden.

Als Array extrahieren

mysqli_fetch_all () kann das Ergebnis gleichzeitig in ein zweidimensionales Array umwandeln. Beachten Sie, dass Sie den Parameter mySQLi_assoc verwenden müssen, um sicherzustellen, dass Sie das assoziative Array erhalten.

 $rows = $result->fetch_all(MYSQLI_ASSOC);

Zu diesem Zeitpunkt ist die Struktur von $ Zeilen ungefähr so:

 [
    ['id' => 1, 'username' => 'alice'],
    ['id' => 2, 'username' => 'bob'],
    ['id' => 3, 'username' => 'charlie']
]

Jetzt können Sie Array_Column () verwenden, um die Spalte Benutzername zu extrahieren:

 $usernames = array_column($rows, 'username');

Das Ergebnis von $ usernamen ist:

 ['alice', 'bob', 'charlie']

Wenn Sie die ID -Spalte extrahieren und die ID als Schlüssel verwenden möchten, verwenden Sie:

 $usernamesById = array_column($rows, 'username', 'id');

Auf diese Weise ist $ usernamesById ::

 [
    1 => 'alice',
    2 => 'bob',
    3 => 'charlie'
]

Vollständiges Beispiel

 <?php
$mysqli = new mysqli('localhost', 'db_user', 'db_pass', 'db_name');
if ($mysqli->connect_error) {
    die('Verbindung ist fehlgeschlagen:' . $mysqli->connect_error);
}

$sql = "SELECT id, username FROM users";
$result = $mysqli->query($sql);
if (!$result) {
    die('Abfrage fehlgeschlagen:' . $mysqli->error);
}

$rows = $result->fetch_all(MYSQLI_ASSOC);
$usernames = array_column($rows, 'username');

print_r($usernames);

$mysqli->close();
?>