Maison > Article > développement back-end > Comment interroger la position des éléments dans un tableau à deux dimensions en php
En PHP, nous avons parfois besoin de trouver la position d'un élément spécifique dans un tableau à deux dimensions. Le processus peut être très simple, mais il peut aussi devenir très délicat si vous ne connaissez pas la bonne méthode. Cet article présentera plusieurs méthodes pour interroger la position des éléments dans un tableau bidimensionnel en PHP et vous aidera à résoudre ce problème.
Interroger la position d'éléments individuels
Si vous souhaitez interroger la position d'un élément spécifique dans un tableau à deux dimensions, vous pouvez utiliser une instruction de boucle for à deux niveaux. Parcourez d’abord chaque sous-tableau, puis recherchez l’élément cible dans chaque sous-tableau. Si l'élément cible est trouvé, sa position peut être renvoyée.
Ce qui suit est un exemple de code qui utilise une instruction de boucle for pour interroger la position des éléments dans un tableau à deux dimensions :
function find_element($arr, $target) { for ($i = 0; $i < count($arr); $i++) { for ($j = 0; $j < count($arr[$i]); $j++) { if ($arr[$i][$j] == $target) { return array($i, $j); } } } }
Dans cette fonction, le premier paramètre $arr représente le tableau à deux dimensions que nous recherchons, et le deuxième paramètre $target représente l'élément cible que nous recherchons. Utilisez deux instructions de boucle for pour parcourir le tableau, et si l'élément cible est trouvé, sa position est renvoyée.
Par exemple, supposons que nous ayons un tableau 2D comme suit :
$arr = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) );
Nous pouvons utiliser le code suivant pour trouver la position du nombre 5 :
$target = 5; $position = find_element($arr, $target); echo "The position of $target is ({$position[0]}, {$position[1]})";
Cela affichera : La position de 5 est (1, 1).
Utilisez la fonction array_search() pour interroger la position
En plus d'écrire manuellement une boucle for, nous pouvons également utiliser la fonction array_search() de PHP pour interroger la position d'un élément spécifique dans un tableau à deux dimensions. La fonction array_search() ne peut trouver que des éléments dans un tableau à une dimension, mais ne peut pas rechercher directement dans un tableau à deux dimensions. Par conséquent, nous devons « aplatir » le tableau bidimensionnel en un tableau unidimensionnel, puis trouver la position de l'élément cible. Nous pouvons ensuite utiliser certaines opérations mathématiques pour convertir les positions du tableau unidimensionnel en positions du tableau bidimensionnel.
Ce qui suit est un exemple de code qui « aplatit » un tableau à deux dimensions en un tableau à une dimension et utilise la fonction array_search() pour trouver l'élément cible :
function find_element($arr, $target) { $flatten = array(); foreach ($arr as $subarr) { $flatten = array_merge($flatten, $subarr); } $key = array_search($target, $flatten); if ($key !== false) { $col = $key % count($arr[0]); $row = floor($key / count($arr[0])); return array($row, $col); } }
Dans cette fonction, nous « aplatissons » d'abord les deux -tableau dimensionnel en un tableau à une dimension $flatten. Nous utilisons ensuite la fonction array_search() pour trouver l'emplacement de l'élément cible dans $flatten. Si l'élément cible est trouvé, nous pouvons utiliser certaines opérations mathématiques pour convertir la position unidimensionnelle en position bidimensionnelle.
Par exemple, supposons que nous ayons un tableau 2D comme suit :
$arr = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) );
Nous pouvons utiliser le code suivant pour trouver la position du nombre 5 :
$target = 5; $position = find_element($arr, $target); echo "The position of $target is ({$position[0]}, {$position[1]})";
Cela affichera : La position de 5 est (1, 1).
Utilisez la fonction array_filter() pour interroger la position
Semblable à la fonction array_search(), nous pouvons également utiliser la fonction array_filter() et certaines opérations mathématiques pour interroger la position d'un élément spécifique dans un tableau à deux dimensions. L'utilisation de la fonction array_filter() évite le problème de la boucle manuelle et de « l'aplatissement » des tableaux.
Ce qui suit est un exemple de code qui utilise la fonction array_filter() et des opérations mathématiques pour interroger la position d'un élément spécifique dans un tableau à deux dimensions :
function find_element($arr, $target) { $result = array_filter($arr, function ($subarr) use ($target) { return in_array($target, $subarr); }); if (!empty($result)) { $row = key($result); $col = array_search($target, $arr[$row]); return array($row, $col); } }
Dans cette fonction, nous utilisons la fonction array_filter() pour filtrer le tableau bidimensionnel et ne conservez que ceux qui contiennent le sous-tableau d’éléments cible. Ensuite, nous pouvons utiliser la fonction key() et la fonction array_search() pour trouver l'emplacement de l'élément cible.
Par exemple, supposons que nous ayons un tableau 2D comme suit :
$arr = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) );
Nous pouvons utiliser le code suivant pour trouver la position du nombre 5 :
$target = 5; $position = find_element($arr, $target); echo "The position of $target is ({$position[0]}, {$position[1]})";
Cela affichera : La position de 5 est (1, 1).
Résumé
Interroger une position dans un tableau 2D en PHP peut s'avérer délicat, mais il existe plusieurs méthodes différentes que nous pouvons utiliser pour résoudre ce problème. Que vous écriviez une boucle for à la main, utilisiez la fonction array_search() ou la fonction array_filter(), quelques calculs sont nécessaires pour convertir une position unidimensionnelle en une position bidimensionnelle. Espérons que cet article vous aide à mieux comprendre comment interroger une position dans un tableau 2D 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!