à l'aide de array_search pour les multiples dimensions de la matrice de
à l'aide de array_search en 1 dimension de la matrice est simple
$array = array("apple", "banana", "cherry");
$searchValue = "cherry";
$key = array_search($searchValue, $array);
echo $key;
mais comment sur un multi-dimensionnelle tableau?
#RaceRecord
[CarID] [ColorID] [Position]
[0] 1 1 3
[1] 2 1 1
[2] 3 2 4
[3] 4 2 2
[4] 5 3 5
par exemple, je veux obtenir l'index de la voiture, dont la position est 1. Comment puis-je faire cela?
- Un "tableau associatif" et un "tableau multidimensionnel" sont deux choses différentes. Votre exemple est un tableau multidimensionnel qui arrive à avoir un axe étant associatif.
- oh, je vois désolé, je vais modifier le titre
Vous devez vous connecter pour publier un commentaire.
En php 5.5.5 & les versions ultérieures,
vous pouvez essayer cette
De sortie:
échantillon de travail : http://sandbox.onlinephpfunctions.com/code/19385da11fe0614ef5f84f58b6dae80bd216fc01
De la Documentation sur array_column peut être trouvé ici
snart
et type =antihero
Vous pouvez essayer ce
Hourra pour les one-liners!
Faisons en sorte que cela soit plus clair:
retourne un tableau qui contient tous les éléments qui satisfont la condition dans le rappel, tout en conservant leur origine de la matrice de touches. Nous avons essentiellement besoin de la clé du premier élément de ce tableau.
Pour ce faire, nous envelopper le résultat dans un
array_keys()
appeler et c'est le premier élément.Cet exemple spécifique fait l'hypothèse qu'au moins un élément correspondant, de sorte que vous pourriez avoir besoin d'un supplément de vérifier, juste pour être sûr.
[0]
à la fin. Learray_search('needle', array_column($haystack, 'column_key'));
méthode ne renvoie que la première.En gros, j'ai 'recréé' underscore.js's findWhere méthode qui est à mourir.
La fonction:
Exemple:
ou
Je suis sûr que cette méthode pourrait facilement réduire LOC. Je suis un peu fatigué. 😛
en fait toutes les fonctions de tableau sont conçues pour une seule dimension de la matrice.Vous devez toujours garder à l'esprit que vous êtes en l'appliquant sur une seule dimension de la matrice.
count
dans pour la boucle