La requête PHP renvoie un tableau à deux dimensions

WBOY
Libérer: 2023-05-06 15:57:08
original
575 Les gens l'ont consulté

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),
);
Copier après la connexion

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;
    }
}
Copier après la connexion

Le code ci-dessus affichera :

Jack的成绩是:85
Copier après la connexion

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;
}
Copier après la connexion

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'];
}
Copier après la connexion

Le code ci-dessus est équivalent à l'exemple précédent et affichera :

Mary的成绩是:92
Copier après la connexion

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal