En PHP, nous pouvons utiliser plusieurs façons d'interroger des éléments dans un tableau, comme en utilisant la fonction in_array(), en utilisant la fonction array_search(), etc. Mais lorsque nous devons interroger des éléments dans un tableau à deux dimensions, ces méthodes sont moins efficaces. Cet article explique comment interroger un tableau bidimensionnel en PHP et renvoyer les éléments requis.
Tout d'abord, regardons un simple tableau bidimensionnel :
$students = array( array('name' => 'Tom', 'age' => 20, 'score' => 90), array('name' => 'Jack', 'age' => 22, 'score' => 85), array('name' => 'Mary', 'age' => 21, 'score' => 92), );
Supposons que nous voulions interroger les notes d'un certain élève, nous pouvons utiliser une boucle foreach pour parcourir le tableau et utiliser des instructions conditionnelles pour déterminer s'il est l'étudiant dont nous avons besoin, par exemple :
$wantedStudent = 'Jack'; foreach ($students as $student) { if ($student['name'] == $wantedStudent) { echo $wantedStudent . '的成绩是:' . $student['score']; break; } }
Le code ci-dessus affichera :
Jack的成绩是:85
Cependant, si nous devons interroger de nombreux étudiants, cette méthode deviendra très lourde. Par conséquent, nous pouvons l'encapsuler dans une fonction à utiliser :
function searchArray($array, $key, $value) { foreach ($array as $item) { if ($item[$key] == $value) { return $item; } } return null; }
La fonction ci-dessus reçoit trois paramètres : tableau, nom de clé et valeur de clé à interroger. Il parcourra le tableau et s'il trouve une correspondance, il renvoie cet élément, sinon il renvoie null.
Nous pouvons utiliser la fonction comme ceci :
$wantedStudent = 'Mary'; $student = searchArray($students, 'name', $wantedStudent); if ($student) { echo $wantedStudent . '的成绩是:' . $student['score']; }
Le code ci-dessus est équivalent à l'exemple précédent et affichera :
Mary的成绩是:92
Cependant, lorsque le tableau est très grand, parcourir l'ensemble du tableau affectera les performances. Par conséquent, nous pouvons utiliser la fonction de tableau array_filter(), qui prend un tableau et une fonction de rappel et renvoie un nouveau tableau contenant les éléments du tableau qui répondent aux conditions de la fonction de rappel.
Ce qui suit est un exemple d'utilisation de array_filter() pour interroger un tableau à deux dimensions :
function searchArray($array, $key, $value) { $filtered = array_filter($array, function($item) use ($key, $value) { return $item[$key] == $value; }); return count($filtered) ? array_values($filtered)[0] : null; }
La fonction ci-dessus a la même fonction que la fonction précédente, mais elle utilise array_filter() pour filtrer les éléments du tableau qui remplissent les conditions, améliorant ainsi les performances.
Jusqu'à présent, nous avons appris à interroger un tableau bidimensionnel en PHP et à renvoyer les éléments requis. Il est recommandé d'utiliser array_filter() et des fonctions anonymes pour implémenter une requête d'élément de tableau lorsqu'il existe des centaines de données ou plus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!