Comment interroger la position des éléments dans un tableau à deux dimensions en php

PHPz
Libérer: 2023-04-19 14:01:14
original
881 Les gens l'ont consulté

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

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

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

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

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

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

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

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

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

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!