ARRAY_SEARCH |
Tableau recherche |
---|---|
PHP 4.0.5+ |
Syntaxe
function array_search($value,$haystack,$strict); |
Paramètres
Nom | Description |
---|---|
$value | Ce paramètre permet d'indiquer la valeur à laquelle il faut trouver une correspondance à une clef |
$haystack | Ce paramètre permet d'indiquer le tableau dans lequel la recherche est effectué. |
$strict | Ce paramètre permet d'indiquer s'il faut que les éléments soit identiques (true) ou non (false). La valeur par défaut est false. |
Retour
Valeur | Description |
---|---|
FALSE | Cette valeur permet d'indiquer qu'aucun résultat n'a été trouvé |
variable | Ces valeurs permettent d'indiquer la clef correspondant à la valeur |
Description
Cette fonction permet de demander la clef correspondant à la valeur spécifié dans un tableau spécifié.
Remarques
- Recherche d'une valeur dans un tableau : La fonction array_search() permet de rechercher une valeur spécifique dans un tableau. Elle retourne la clef correspondante de la première occurrence de la valeur dans le tableau. Si la valeur n'est pas trouvée, elle retourne FALSE, ce qui permet de vérifier la présence de l'élément.
- Retourne la clef, pas la valeur : Contrairement à d'autres fonctions qui retournent la valeur correspondante, array_search() retourne la clef de l'élément recherché. Cela est particulièrement utile lorsqu'on travaille avec des tableaux associatifs ou des tableaux à indices personnalisés, car la clef permet d'accéder directement à l'élément.
- Comportement avec des tableaux associatifs : Lorsque array_search() est utilisé avec un tableau associatif, il retourne la clef associée à la valeur recherchée. Si plusieurs éléments ont la même valeur, seule la clef de la première occurrence est retournée, ce qui peut être important dans les contextes où les doublons sont possibles.
- Comparaison stricte : Par défaut, array_search() effectue une comparaison non stricte, ce qui signifie que les types de données sont convertis avant la comparaison. Par exemple, la valeur 1 (int) sera considérée équivalente à la chaîne de caractères '1'. Cependant, si vous passez le paramètre TRUE à la fonction, la comparaison devient stricte, et les types doivent être exactement les mêmes.
- Gestion des tableaux multidimensionnels : array_search() ne fonctionne que sur les tableaux à un seul niveau. Si vous souhaitez rechercher une valeur dans un tableau multidimensionnel, vous devrez utiliser une approche personnalisée, comme une boucle récursive ou une combinaison d'autres fonctions, car array_search() ne recherche pas dans les sous-tableaux.
- Retourné FALSE en cas d'absence de valeur : Si la valeur recherchée n'est pas présente dans le tableau, array_search() retourne FALSE. Cela peut poser problème dans des tableaux où la clef est réellement 0 ou une autre valeur équivalente à FALSE, car cette valeur sera interprétée comme un échec de recherche. Il est donc recommandé d'utiliser === pour tester le résultat afin de distinguer un échec de recherche réel d'une clef ayant la valeur FALSE.
- Utilisation dans les cas de recherche rapide : array_search() est souvent utilisée dans les cas où une recherche rapide d'une valeur dans un tableau est nécessaire. Par exemple, dans les processus de filtrage, de validation de données ou d'extraction d'informations d'un tableau complexe, cette fonction peut être extrêmement utile.
- Impact de la taille du tableau sur la performance : Comme array_search() effectue une recherche linéaire, son efficacité diminue lorsque le tableau devient très grand. Pour des tableaux très volumineux, d'autres structures de données comme des tables de hachage ou des index peuvent être plus performantes, car array_search() peut avoir un coût en termes de temps d'exécution dans de tels cas.
Exemple
Voici un exemple montrant une utilisation de la valeur absolue avec des parenthèses :
on obtiendra le résultat suivant :
Avant :array(6) { [0]=> string(3) "AND" [1]=> string(4) "ARGS" [2]=> string(5) "ARRAY" [3]=> string(3) "ASM" [4]=> string(4) "AUTO" [5]=> string(5) "FALSE" }Après :array(5) { [0]=> string(3) "AND" [1]=> string(4) "ARGS" [2]=> string(5) "ARRAY" [3]=> string(3) "ASM" [4]=> string(4) "AUTO" }
Dernière mise à jour : Dimanche, le 22 mars 2015