PHP, en tant que langage de programmation puissant, possède des structures de données riches, parmi lesquelles le tableau bidimensionnel est une structure de données couramment utilisée. Dans le développement quotidien, nous devons souvent parcourir un tableau bidimensionnel pour trouver ses données clés. Cependant, si des boucles imbriquées sont utilisées pour chaque parcours, la complexité temporelle deviendra très élevée. Cet article présentera une méthode pour trouver la valeur clé d'un tableau à deux dimensions dans une boucle.
Un tableau bidimensionnel est un type spécial de tableau qui contient plusieurs tableaux et organise les éléments sous forme de lignes et de colonnes. Un tableau bidimensionnel peut être considéré comme une matrice composée de plusieurs tableaux unidimensionnels, où chaque élément est accessible par un index de ligne et un index de colonne. En PHP, un tableau bidimensionnel peut être défini de la manière suivante :
$arr = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) );
Le code ci-dessus définit un tableau bidimensionnel $arr, qui contient trois tableaux unidimensionnels, chacun avec trois éléments.
Dans la méthode traditionnelle de parcours de tableau bidimensionnel, il est généralement nécessaire d'utiliser deux boucles imbriquées, l'une pour parcourir les lignes et l'autre pour parcourir les colonnes. Par exemple :
foreach ($arr as $key1 => $value1) { foreach ($value1 as $key2 => $value2) { if ($value2 == $target) { echo "关键值所在的行为:" . $key1 . "<br>"; echo "关键值所在的列为:" . $key2 . "<br>"; } } }
Dans le code ci-dessus, nous utilisons une boucle foreach pour parcourir chaque élément du tableau $arr. La première boucle parcourt les lignes et la deuxième boucle parcourt les colonnes. Lorsque l'élément cible $target est trouvé, affichez la ligne et la colonne où se trouve l'élément.
Cependant, la complexité temporelle de cette méthode est $O(n^2)$, c'est-à-dire qu'à mesure que la taille du tableau augmente, le nombre de boucles augmente de façon exponentielle.
Maintenant, nous introduisons une méthode plus efficace qui peut trouver les valeurs clés dans un tableau bidimensionnel en une seule boucle. Cette méthode est basée sur certaines fonctions de tableau fournies par PHP et présente l'avantage d'une complexité temporelle de $O(n)$.
Tout d'abord, nous devons utiliser la fonction array_map de PHP pour convertir le tableau à deux dimensions en un tableau à une dimension, puis utiliser la fonction array_search pour trouver la valeur cible dans le tableau à une dimension. Le code est le suivant :
// 将二维数组转成一维数组 $array = array_reduce($arr, 'array_merge', array()); // 在一维数组中查找目标值 $key = array_search($target, $array); // 计算目标值所在的行和列 $row = floor($key / count($arr[0])); $col = $key % count($arr[0]); echo "关键值所在的行为:" . $row . "<br>"; echo "关键值所在的列为:" . $col . "<br>";
Dans le code ci-dessus, nous utilisons la fonction array_reduce pour convertir le tableau à deux dimensions en un tableau à une dimension. La fonction array_search trouve la valeur cible dans le tableau à une dimension et calcule la ligne. somme de la valeur cible dans la liste à deux dimensions.
La complexité temporelle de cette méthode est de $O(n)$ Par rapport à la méthode traditionnelle, les performances ont été grandement améliorées.
Cet article présente une méthode efficace qui permet de trouver la valeur clé d'un tableau bidimensionnel en une seule boucle. En utilisant certaines fonctions de tableau fournies par PHP, nous avons réduit la complexité temporelle de $O(n^2)$ à $O(n)$, améliorant considérablement les performances du programme. J'espère que cet article sera utile pour parcourir et rechercher des tableaux bidimensionnels en PHP.
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!