Lorsque vous utilisez PHP pour faire fonctionner une base de données MySQL, de nombreuses personnes obtiendront un objet MySQLI_RESULT après avoir utilisé MySQLI_Query pour exécuter une requête. Parfois, nous voulons simplement extraire les données d'une colonne, comme tous les noms d'utilisateur et tous les ID, et les mettre dans un tableau. À l'heure actuelle, le manuel tandis que Loop est en fait un peu verbeux. En fait, Array_Column () de PHP peut vous aider à le gérer facilement.
Cet article vous apprendra à extraire rapidement une colonne de MySQLI_RESULT en utilisant Array_Column () .
Supposons que nous ayons une table utilisateur d'utilisateurs avec ID de champs et nom d'utilisateur . Nous voulons retirer tous les noms d'utilisateur pour former un tableau.
<?php
$mysqli = new mysqli('localhost', 'db_user', 'db_pass', 'db_name');
if ($mysqli->connect_error) {
die('Échec de la connexion:' . $mysqli->connect_error);
}
$sql = "SELECT id, username FROM users";
$result = $mysqli->query($sql);
if (!$result) {
die('La requête a échoué:' . $mysqli->error);
}
À l'heure actuelle, $ Result est un objet mysqli_result . Nous devons le convertir en un tableau pour utiliser Array_Column () .
mysqli_fetch_all () peut convertir les résultats définis en un tableau bidimensionnel en même temps. Notez que vous devez utiliser le paramètre MySQLI_ASSOC pour vous assurer d'obtenir le tableau associatif.
$rows = $result->fetch_all(MYSQLI_ASSOC);
À l'heure actuelle, la structure de $ Rows est à peu près comme ceci:
[
['id' => 1, 'username' => 'alice'],
['id' => 2, 'username' => 'bob'],
['id' => 3, 'username' => 'charlie']
]
Vous pouvez maintenant utiliser array_column () pour extraire la colonne du nom d'utilisateur :
$usernames = array_column($rows, 'username');
Le résultat de $ noms est:
['alice', 'bob', 'charlie']
Si vous souhaitez extraire la colonne ID et utiliser l'ID comme clé, utilisez:
$usernamesById = array_column($rows, 'username', 'id');
De cette façon, $ usernamebyid est:
[
1 => 'alice',
2 => 'bob',
3 => 'charlie'
]
<?php
$mysqli = new mysqli('localhost', 'db_user', 'db_pass', 'db_name');
if ($mysqli->connect_error) {
die('Échec de la connexion:' . $mysqli->connect_error);
}
$sql = "SELECT id, username FROM users";
$result = $mysqli->query($sql);
if (!$result) {
die('La requête a échoué:' . $mysqli->error);
}
$rows = $result->fetch_all(MYSQLI_ASSOC);
$usernames = array_column($rows, 'username');
print_r($usernames);
$mysqli->close();
?>