Clés avec 'array_search'
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 18 sur 68.
Alors que in_array() vous indique si une valeur existe dans un tableau, vous avez parfois besoin de savoir exactement où cette valeur se situe. La fonction array_search() recherche une valeur spécifique dans un tableau et retourne sa clé ou son index correspondant.
Voici comment cela fonctionne :
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // Affiche : 2
?>La fonction prend deux paramètres : la valeur que vous recherchez et le tableau dans lequel effectuer la recherche. Lorsque la valeur est trouvée, array_search() retourne la clé (pour les tableaux indexés, il s'agit de la position numérique commençant à 0).
Cependant, il existe une distinction importante dans ce qui est renvoyé. Si la valeur est trouvée, vous obtenez la clé. Si la valeur n'est pas trouvée, la fonction renvoie false :
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // Retourne : 2
$notFound = array_search(100, $scores); // Retourne : false
?>Cette fonction est particulièrement utile lorsque vous devez déterminer la position ou le classement d'un élément, par exemple pour trouver le rang d'un joueur dans un classement ou localiser l'index d'un élément spécifique pour un traitement ultérieur.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileVous recevrez deux entrées : un tableau de noms de produits au format JSON et un nom de produit à rechercher. Lisez les deux entrées, convertissez la chaîne JSON en un tableau, utilisez array_search() pour trouver la position du produit dans le tableau, et affichez le résultat. Si le produit est trouvé, affichez sa position d'index. Si le produit n'est pas trouvé, affichez "Product not found".
Format d'entrée : Deux lignes - la première ligne contient un tableau JSON (exemple : ["laptop","mouse","keyboard","monitor"]), la deuxième ligne contient le nom du produit à rechercher
Résultat attendu : Soit la position d'index numérique du produit (en commençant par 0), soit le texte "Product not found" si le produit n'existe pas dans le tableau
Aide-mémoire
La fonction array_search() recherche une valeur spécifique dans un tableau et renvoie sa clé ou son index correspondant :
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // Affiche : 2
?>La fonction prend deux paramètres : la valeur que vous recherchez et le tableau dans lequel effectuer la recherche. Elle renvoie la clé si elle est trouvée, ou false si elle n'est pas trouvée :
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // Retourne : 2
$notFound = array_search(100, $scores); // Retourne : false
?>Essayez vous-même
<?php
// Lire l'entrée du tableau JSON
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);
// Lire le nom du produit à rechercher
$searchProduct = trim(fgets(STDIN));
// TODO: Écrivez votre code ci-dessous
// Utilisez array_search() pour trouver la position du produit
// Afficher le résultat
echo $result;
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classement