Maison  >  Article  >  développement back-end  >  Est-il possible de trouver une valeur spécifiée dans un tableau multidimensionnel php ?

Est-il possible de trouver une valeur spécifiée dans un tableau multidimensionnel php ?

PHPz
PHPzoriginal
2023-04-24 15:51:06649parcourir

En PHP, un tableau est une structure de données très courante et un tableau multidimensionnel est une forme spéciale de tableau. Un tableau multidimensionnel peut être considéré comme un tableau, et chaque élément est toujours un tableau. Dans le développement réel, nous devons parfois rechercher des éléments spécifiés dans un tableau multidimensionnel. Pour atteindre cet objectif, PHP fournit des fonctions et des opérateurs intégrés.

Cet article présentera la méthode de recherche d'éléments spécifiés dans des tableaux multidimensionnels en PHP et fournira quelques exemples de code pour aider les lecteurs à mieux comprendre et appliquer les connaissances connexes.

1. Utilisez la fonction array_search pour trouver une valeur spécifiée

PHP fournit une fonction intégrée array_search(), qui peut être utilisée pour trouver une valeur spécifiée dans un tableau sans que nous ayons besoin de parcourir manuellement le tableau. Cette fonction utilise une méthode de « comparaison détendue » pour rechercher, c'est-à-dire en utilisant == pour la comparaison au lieu d'utiliser le symbole de congruence ===. Voici un exemple de code pour rechercher une valeur spécifiée dans un tableau multidimensionnel :

/**
 * 查找多维数组中指定值
 *
 * @param mixed $needle 需要查找的值
 * @param array $haystack 目标多维数组
 * @return mixed 返回找到的键名,如果未找到则返回false
 */
function searchValueInMultidimensionalArray($needle, $haystack)
{
    foreach ($haystack as $key => $value) {
        $currentKey = $key;
        if ($needle == $value || (is_array($value) && searchValueInMultidimensionalArray($needle, $value) !== false)) {
            return $currentKey;
        }
    }
    return false;
}

// 示例用法
$multidimensionalArray = [
    'a' => [
        'b' => 'c',
        'd' => 'e'
    ],
    'f' => [
        'g' => [
            'h' => 'i',
            'j' => 'k'
        ]
    ]
];

$searchValue = 'e';
$result = searchValueInMultidimensionalArray($searchValue, $multidimensionalArray);
echo $result; // 输出a/d

Dans l'exemple de code ci-dessus, nous avons défini une fonction personnalisée appelée searchValueInMultidimensionnelleArray() pour rechercher une valeur spécifiée dans un tableau multidimensionnel. Cette fonction utilise une méthode récursive pour parcourir et utilise la fonction array_search() lors de chaque parcours pour déterminer si l'élément actuel du tableau contient la valeur à trouver.

2. Utilisez la fonction array_filter pour trouver le nom de clé ou la valeur de clé spécifié

En plus de trouver un certain élément, nous devons parfois également trouver une liste d'éléments dans un tableau multidimensionnel qui répondent à des conditions spécifiées. PHP fournit une fonction intégrée array_filter(), qui peut être utilisée pour filtrer les éléments qui répondent à des conditions spécifiques, et vous pouvez également spécifier le nom de clé ou la valeur de clé à rechercher.

Ce qui suit est un exemple de code pour trouver le nom de clé spécifié dans un tableau multidimensionnel :

// 示例数组
$multidimensionalArray = [
    'a' => [
        'b' => 'c',
        'd' => 'e'
    ],
    'f' => [
        'g' => [
            'h' => 'i',
            'j' => 'k'
        ]
    ]
];

// 查找键名为'b'的元素
$searchKey = 'b';
$filteredArray = array_filter($multidimensionalArray, function ($value, $key) use ($searchKey) {
    return $key == $searchKey;
}, ARRAY_FILTER_USE_KEY);

print_r($filteredArray);

Le code ci-dessus affichera les résultats suivants :

Array
(
    [a] => Array
        (
            [b] => c
        )

)

Dans le code ci-dessus, nous utilisons la fonction array_filter() et utilisons $ dans la fonction de rappel Le paramètre keys représente le nom de clé de l'élément actuel du tableau, puis utilise ce nom de clé pour comparer avec le nom de clé de recherche que nous avons spécifié ($searchKey).

De plus, nous pouvons également utiliser le paramètre $ureKey pour trouver la valeur de clé spécifiée. L'exemple de code est le suivant :

// 示例数组
$multidimensionalArray = [
    'a' => [
        'b' => 'c',
        'd' => 'e'
    ],
    'f' => [
        'g' => [
            'h' => 'i',
            'j' => 'k'
        ]
    ]
];

// 查找键值为'k'的元素
$searchValue = 'k';
$filteredArray = array_filter($multidimensionalArray, function ($value, $key) use ($searchValue) {
    return is_array($value) ? in_array($searchValue, $value) : $value == $searchValue;
});

print_r($filteredArray);

Le code ci-dessus affichera les résultats suivants :

Array
(
    [f] => Array
        (
            [g] => Array
                (
                    [j] => k
                )

        )

)

Dans le code ci-dessus, nous utilisons le. Fonction is_array() pour déterminer si la valeur actuelle est également un tableau. Si tel est le cas, utilisez la fonction in_array() pour déterminer si le tableau actuel contient la valeur clé qui doit être recherchée. Sinon, utilisez == pour une comparaison directe.

Résumé

Dans cet article, nous avons présenté la méthode de recherche d'éléments spécifiés dans des tableaux multidimensionnels en PHP et avons fourni quelques exemples de code pour aider les lecteurs à mieux comprendre et appliquer les connaissances connexes. Dans le développement réel, si nous avons besoin de trouver une liste d'éléments dans un tableau multidimensionnel qui répondent à des conditions spécifiques, nous pouvons utiliser la fonction intégrée de PHP array_filter() pour filtrer ; si nous avons besoin de trouver un élément spécifié, nous pouvons utiliser ; array_search() ou une fonction personnalisée pour parcourir la recherche. L'utilisation flexible de ces méthodes peut nous aider à développer plus efficacement diverses applications PHP complexes.

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