Dans ce scénario, vous disposez d'un tableau multidimensionnel représentant une collection de produits. Chaque produit est défini par des propriétés telles que le nom, le slug, le prix, etc. Votre objectif est de trouver un moyen de rechercher dans le tableau un produit spécifique à l'aide de la propriété slug et de renvoyer sa clé correspondante dans le tableau.
Une façon d'y parvenir consiste à exploiter la fonction array_search et la fonction array_column. Voici une fonction personnalisée qui résume cette approche :
function array_search_multidim(array $array, string $column, string $key) { return array_search($key, array_column($array, $column)); }
Pour utiliser cette fonction, vous l'appelleriez ainsi :
$product_key = array_search_multidim($products, 'slug', 'breville-one-touch-tea-maker-BTM800XL');
Cela recherchera dans le tableau $products un produit avec la propriété slug égale à « breville-one-touch-tea-maker-BTM800XL » et renvoie sa clé correspondante. Dans cet exemple, il renverra la valeur 1.
Une autre solution possible est basée sur la fonction array_search. Pour cette approche, vous devez utiliser PHP 5.5.0 ou supérieur :
$key = array_search('breville-one-touch-tea-maker-BTM800XL', array_column($products, 'slug'));
Ce code obtient le même résultat que l'exemple précédent.
Il existe également une troisième méthode utilisant array_walk_recursive qui parcourt récursivement tous les éléments du tableau et compare la valeur du slug avec la valeur donnée :
function array_walk_recursive_search($input, $needle, &$result = null) { if (is_array($input)) { foreach ($input as $key => $value) { array_walk_recursive_search($value, $needle, $result); } } else { if ($input === $needle) { $result = $key; } } }
Cette fonction peut être invoquée comme suit :
array_walk_recursive($products, 'breville-one-touch-tea-maker-BTM800XL', $product_key);
Il est important de noter que même si la méthode array_walk_recursive est plus générale et peut gérer tout type de structure de tableau, elle est généralement plus lente que les autres méthodes.
Dans l'ensemble, la meilleure méthode à utiliser dépendra des besoins spécifiques et des contraintes de votre application. Cependant, les deux méthodes les plus efficaces sont celles qui utilisent les fonctions array_search et array_column.
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!