Obtenir la valeur de l'index d'un tableau en PHP
J'ai un tableau:
$list = array('string1', 'string2', 'string3');
Je veux obtenir l'index pour une valeur donnée (c'est à dire 1
pour string2
et 2
pour string3
)
Tout ce que je veux, c'est la position des chaînes dans le tableau
- string1 est 0
- mot2 est de 1
- string3 est de 2
Comment faire?
- Un tech écrivain ami à moi m'a dit: "vous ne pouvez pas obtenir les bonnes réponses, à moins que vous poser les bonnes questions."
- c'est vieux .... mais je wold voudrais savoir pourquoi: "j'ai essayé array_search mais il ne servait à rien"
- S'il vous plaît, marque de la plus grande puissance en réponse acceptée.
Vous devez vous connecter pour publier un commentaire.
array_search
est la façon de le faire.De la docs:
Vous pourriez boucle sur le tableau manuellement et de trouver l'indice, mais pourquoi le faire quand il y a une fonction pour cela. Cette fonction renvoie toujours une touche et il va bien travailler avec des associatifs et des tableaux normaux.
Si vous êtes seulement un peu d'entre eux (et/ou la taille de la matrice est grande), alors que vous étiez sur la bonne voie avec array_search:
Si vous souhaitez que tous (ou beaucoup), une boucle de prob peut-on faire mieux:
Gens d'autres ont suggéré
array_search()
qui donne la clé de l'élément du tableau où la valeur est trouvée. Vous pouvez vous assurer que les clés du tableau sont contigus entiers en utilisantarray_values()
:Vous avez dit dans votre question que
array_search()
ne servait à rien. Pouvez-vous expliquer pourquoi? Qu'avez-vous essayez et comment se fait-il pas de répondre à vos besoins?//ou, compte tenu de votre structure de tableau:
//vous pourrait juste
//exécution de
//sinon
//recursersively
//sorties
Le problème, c'est que vous n'avez pas un indice numérique sur votre tableau.
À l'aide de array_values() permet de créer un zéro tableau indexé, vous pouvez faire une recherche à l'aide de array_search() en contournant la nécessité d'utiliser une boucle for.
Pourriez-vous être un peu plus précis?
fonctionne très bien pour moi. Êtes-vous en train d'essayer d'accomplir quelque chose de plus complexe?
Ce code devrait faire la même chose que votre nouvelle routine, le travail avec le bon un tableau multi-dimensionnel..
Essayer le array_keys fonction PHP.
array_search devrait fonctionner correctement, juste testé cela et il renvoie les touches comme prévu:
Ou de l'index, vous pouvez utiliser