J'ai un tableau comme suit:
function example() {
/* some stuff here that pushes items with
dynamically created key strings into an array */
return array( // now lets pretend it returns the created array
'firstStringName' => $whatEver,
'secondStringName' => $somethingElse
);
}
$arr = example();
// now I know that $arr contains $arr['firstStringName'];
Je dois connaître l'index de $arr['firstStringName']
pour pouvoir parcourir array_keys($arr)
et retourner la chaîne de clé 'firstStringName'
par son index. Comment puis je faire ça?
Si vous avez une valeur et que vous voulez trouver la clé, utilisez array_search()
comme ceci:
$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);
$key
contiendra maintenant la clé de la valeur 'a'
(c'est-à-dire 'first'
).
key($arr);
renverra la valeur de clé pour l'élément de tableau actuel
Si je comprends bien, ne pouvez-vous pas simplement utiliser:
foreach($arr as $key=>$value)
{
echo $key;
}
Voir manuel PHP
Si le nom est dynamique, alors vous devez avoir quelque chose comme
$arr[$key]
ce qui voudrait dire que $ key contient la valeur de la clé.
Vous pouvez utiliser array_keys()
pour obtenir TOUTES les clés d’un tableau, par exemple.
$arr = array('a' => 'b', 'c' => 'd')
$x = array_keys($arr);
vous donnerais
$x = array(0 => 'a', 1 => 'c');
Oui, vous pouvez en déduire que php est l’une des rares langues à fournir un tel support.
foreach($arr as $key=>$value)
{
}
si vous devez renvoyer un tableau d'éléments de même valeur, utilisez la fonction array_keys()
$array = array('red' => 1, 'blue' => 1, 'green' => 2);
print_r(array_keys($array, 1));
utilisez array_keys()
pour obtenir un tableau de toutes les clés uniques.
Notez qu'un tableau avec des clés nommées comme votre $arr
peut également être accédé avec des index numériques, comme $arr[0]
.
Voici une autre option
$array = [1=>'one', 2=>'two', 3=>'there'];
$array = array_flip($array);
echo $array['one'];
vous pouvez utiliser la fonction key de php pour obtenir le nom de la clé:
<?php
$array = array(
'fruit1' => 'Apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'Apple',
'fruit5' => 'Apple');
// this cycle echoes all associative array
// key where value equals "Apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'Apple') {
echo key($array).'<br />';
}
next($array);
}
?>
comme ici: PHP: key - Manual