Maison  >  Article  >  développement back-end  >  PHP trouve l'indice d'un tableau entier

PHP trouve l'indice d'un tableau entier

PHPz
PHPzoriginal
2023-05-19 09:45:36489parcourir

En PHP, nous devons souvent effectuer certaines opérations sur les tableaux, comme trouver l'indice d'un élément dans le tableau. Si les éléments du tableau sont tous uniques, nous pouvons utiliser la fonction array_search() pour trouver l'index de l'élément. Mais s'il y a des éléments identiques dans le tableau, la fonction renverra un résultat incorrect car elle ne renverra que l'index du premier élément correspondant. Dans ce cas, nous devons utiliser d'autres méthodes pour trouver l'indice de l'élément du tableau.

Ci-dessous, je partagerai plusieurs méthodes pour trouver l'indice d'un tableau d'entiers.

Méthode 1 : Utiliser la fonction in_array()

La fonction in_array() peut vérifier si une valeur existe dans le tableau, si elle existe, elle renvoie vrai, sinon elle renvoie faux. Bien entendu, nous pouvons utiliser cette fonction pour trouver l'indice d'un élément du tableau, comme indiqué ci-dessous :

$array = array(1, 2, 3, 4, 5);
$key = array_search(3, $array);
if ($key !== false) {
    echo "3 的下标是:$key";
} else {
    echo "数组中不存在 3";
}

Résultat du résultat :

3 的下标是:2

Cependant, cette méthode ne s'applique qu'au cas où l'élément du tableau est unique. S'il y a des éléments en double, l'indice de l'élément ne peut pas être obtenu avec précision.

Méthode 2 : utilisez la fonction array_keys()

La fonction array_keys() peut renvoyer tous les noms de clés d'un tableau, c'est-à-dire renvoyer la liste d'indices du tableau. Nous pouvons utiliser cette fonction pour trouver tous les indices d'un élément dans le tableau d'entiers, comme indiqué ci-dessous :

$array = array(1, 2, 3, 3, 4, 5);
$keys = array_keys($array, 3);
if (!empty($keys)) {
    foreach ($keys as $key) {
        echo "3 的下标是:$key<br>";
    }
} else {
    echo "数组中不存在 3";
}

Résultat de sortie :

3 的下标是:2
3 的下标是:3

Cette méthode peut obtenir avec précision tous les indices d'un élément dans le tableau d'entiers, y compris L'indice de l’élément répété. Cependant, si l'élément n'existe pas dans le tableau, un tableau vide est renvoyé.

Méthode 3 : utilisez les fonctions array_flip() et isset()

La fonction array_flip() peut échanger les clés et les valeurs du tableau, puis renvoyer le nouveau tableau. S'il y a des valeurs en double dans le tableau d'origine, certaines données seront perdues. Mais si les valeurs de notre tableau sont toutes uniques, nous pouvons utiliser cette méthode pour trouver l'indice d'un élément dans le tableau d'entiers, comme indiqué ci-dessous :

$array = array(1, 2, 3, 4, 5);
$flipped = array_flip($array);
if (isset($flipped[3])) {
    echo "3 的下标是:" . $flipped[3];
} else {
    echo "数组中不存在 3";
}

Résultat de sortie :

3 的下标是:2

Bien que cette méthode soit relativement simple, mais ne s'applique que lorsque tous les éléments du tableau sont uniques. S'il y a des éléments identiques dans le tableau, nous ne pouvons pas obtenir le bon indice.

Méthode 4 : utilisez la fonction de rappel et la fonction array_filter()

La fonction array_filter() peut filtrer les éléments du tableau en fonction de conditions spécifiées, puis renvoyer les éléments du tableau qui remplissent les conditions. Nous pouvons utiliser cette fonction combinée avec une fonction de rappel personnalisée pour trouver l'indice d'un élément dans le tableau d'entiers, comme indiqué ci-dessous :

$array = array(1, 2, 3, 3, 4, 5);
$index = null;
array_filter($array, function($key, $value) use (&$index) {
    if ($value == 3 && is_null($index)) {
        $index = $key;
    }
}, ARRAY_FILTER_USE_BOTH);
if (!is_null($index)) {
    echo "3 的下标是:$index";
} else {
    echo "数组中不存在 3";
}

Résultat de sortie :

3 的下标是:2

Cette méthode peut obtenir avec précision un élément dans le tableau d'entiers Le premier indice de , y compris les indices des éléments répétés. Cependant, le code est plus compliqué en raison de la nécessité d'une fonction de rappel personnalisée.

Résumé

Pour le problème de trouver l'indice d'un tableau d'entiers, nous pouvons choisir différentes méthodes pour le résoudre. La méthode appropriée doit être sélectionnée en fonction du contenu du tableau et du scénario d'application. Si les éléments du tableau sont tous uniques, nous pouvons utiliser la fonction array_search() ou la fonction array_flip() pour trouver l'indice de l'élément. S'il y a des éléments en double dans le tableau, nous pouvons choisir d'utiliser la fonction array_keys() ou la fonction array_filter() combinée avec une fonction de rappel personnalisée pour trouver l'indice de l'élément.

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