Principe de recherche d'éléments dans un tableau PHP : Déterminer la valeur de hachage de la clé. Recherchez le bucket correspondant à la valeur de hachage. Parcourez et comparez les paires clé-valeur dans le compartiment. Renvoie l'élément lorsqu'une clé correspondante est trouvée.
Le principe sous-jacent de la recherche d'éléments spécifiques dans des tableaux PHP
En PHP, un tableau est une structure de données ordonnée dans laquelle les éléments sont stockés sous la forme de paires clé-valeur. Afin de trouver un élément spécifique, les étapes suivantes sont effectuées sous le capot :
-
Déterminer la valeur de hachage : Lorsque la clé du tableau est une chaîne, PHP calcule sa valeur de hachage (valeur entière).
-
Recherche de bucket : Le tableau est divisé en plusieurs "buckets", un bucket pour chaque valeur de hachage. Dans la base de données/table de hachage (table de hachage), la valeur de hachage correspondante est calculée en fonction de la clé, de sorte que la position dans la table puisse être connue. Il existe également un algorithme pour calculer la valeur de hachage. La valeur de hachage est enregistrée en fonction. la taille de la clé La même clé La valeur de hachage calculée est la même. La valeur de hachage peut être répétée, donc si plusieurs clés sont enregistrées en même temps, avec la même clé et la même valeur de hachage, une collision se produira à ce moment-là, ce problème peut être résolu grâce à la méthode de fermeture éclair, méthode d'adressage ouverte. , etc. .
-
Seaux de parcours : Comparez avec les clés de l'élément cible une par une dans le compartiment correspondant.
-
Correspondance de clé : Si une clé correspondante est trouvée, l'élément est renvoyé.
Cas réel :
<?php
$arr = ['name' => 'John', 'age' => 30, 'city' => 'New York'];
// 使用 in_array() 函数(线性搜索)
if (in_array('John', $arr)) {
echo "John exists in the array.\n";
}
// 使用 array_key_exists() 函数(哈希查找)
if (array_key_exists('age', $arr)) {
echo "age key exists in the array.\n";
}
?>
Sortie :
John exists in the array.
age key exists in the array.
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!
Déclaration: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