Recherche de tableau multidimensionnel avec in_array()
La fonction in_array() excelle dans la vérification de l'existence d'une valeur dans un tableau linéaire. Cependant, sa fonctionnalité est insuffisante lorsqu’il s’agit de tableaux multidimensionnels. Cet article explore les limites de in_array() dans les scénarios multidimensionnels et présente une solution récursive.
Limitations de in_array() avec les tableaux multidimensionnels
$ a = array("Mac", "NT", "Irix", "Linux");<br>if (in_array("Irix", $a)) echo "J'ai obtenu Irix"; // Works<br>
En revanche, appliquer in_array() à un tableau multidimensionnel, comme indiqué ci-dessous, donnera des résultats inexacts :
$b = array(array("Mac", "NT"), array("Irix", "Linux"));<br>if (in_array("Irix", $b)) echo "J'ai obtenu Irix"; // Échec<br>
Solution récursive pour la recherche de tableau multidimensionnel
Pour rechercher efficacement une valeur dans un tableau multidimensionnel, une approche récursive est requis. L'extrait de code suivant définit une fonction personnalisée à cet effet :
<br>function in_array_r($needle, $haystack, $strict = false) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">foreach ($haystack as $item) { if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) { return true; } } return false;
}
Utilisation
La fonction in_array_r() est utilisée comme suit :
$b = array(array("Mac", "NT"), array("Irix", "Linux"));<br>echo in_array_r("Irix", $b) ? 'found' : 'not found';<br>
Cette solution permet des opérations de recherche efficaces et précises de valeurs dans des tableaux multidimensionnels.
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!