Clé d'identification pour une valeur de tableau spécifique
Lorsqu'il s'agit de tableaux multidimensionnels, il devient nécessaire de rechercher des valeurs spécifiques et de récupérer les clés correspondantes . Dans ce scénario, nous visons à trouver la clé d'une valeur donnée dans un tableau multidimensionnel.
Recherche de tableau à l'aide de array_search()
Une approche pour rechercher des tableaux consiste à utilisez la fonction array_search(), disponible dans les versions PHP 5.5.0 et supérieures. Cette fonction nécessite deux arguments : la valeur cible et un tableau dans lequel effectuer la recherche. Il renvoie la clé associée à la valeur cible si elle est trouvée, ou FALSE dans le cas contraire.
Exemple
Considérons le tableau multidimensionnel suivant :
$products = [ 1 => [ 'slug' => 'breville-one-touch-tea-maker-BTM800XL', 'name' => 'The Breville One-Touch Tea Maker', ], 2 => [ 'slug' => 'breville-variable-temperature-kettle-BKE820XL', 'name' => 'Breville Variable-Temperature Kettle BKE820XL', ], ];
Pour rechercher la clé associée au slug breville-one-touch-tea-maker-BTM800XL :
$key = array_search('breville-one-touch-tea-maker-BTM800XL', array_column($products, 'slug'));
La fonction array_column() est utilisée pour extraire les valeurs « slug » de chaque sous-tableau dans un tableau unidimensionnel, permettant à array_search() fonction pour effectuer la recherche efficacement.
Solution alternative utilisant array_search_multidim()
Pour une solution autonome, vous pouvez définir une fonction personnalisée comme :
function array_search_multidim($array, $column, $key) { return (array_search($key, array_column($array, $column))); }
Cette fonction vous permet de passer le tableau multidimensionnel, le nom de la colonne à rechercher à l'intérieur (par exemple, « slug ») et la cible valeur.
Exemple
$key = array_search_multidim($products, 'slug', 'breville-one-touch-tea-maker-BTM800XL');
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!