PHP-получить имя ключа значения массива
у меня есть массив следующим образом:
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'];
мне нужно узнать индекс $arr['firstStringName']
Так что я могу цикл через array_keys($arr)
и вернуть строку ключа 'firstStringName'
по его индексу. Как я могу это сделать?
10 ответов:
если у вас есть значение и вы хотите найти ключ, используйте
array_search()
такой:$arr = array ('first' => 'a', 'second' => 'b', ); $key = array_search ('a', $arr);
$key
теперь будет содержать ключ для value'a'
(то есть'first'
).
Если я правильно понял, вы не можете просто использовать:
foreach($arr as $key=>$value) { echo $key; }
посмотреть руководство PHP
если имя динамическое, то у вас должно быть что-то вроде
$arr[$key]
что означает, что $key содержит значение ключа.
можно использовать
array_keys()
чтобы получить все ключи массива, например,$arr = array('a' => 'b', 'c' => 'd') $x = array_keys($arr);
даст вам
$x = array(0 => 'a', 1 => 'c');
Да вы можете infact php является одним из немногих языков, которые обеспечивают такую поддержку..
foreach($arr as $key=>$value) { }
использовать array_keys (), чтобы получить массив всех уникальных ключей.
обратите внимание, что массив с именованными ключами, такими как ваш $arr, также может быть доступен с числовыми индексами, такими как $arr[0].
Если вам нужно вернуть элементы массива с одинаковым значением, используйте функцию array_keys ()
$array = array('red' => 1, 'blue' => 1, 'green' => 2); print_r(array_keys($array, 1));
вот еще один вариант
$array = [1=>'one', 2=>'two', 3=>'there']; $array = array_flip($array); echo $array['one'];
вы можете использовать ключевую функцию php, чтобы получить имя ключа:
<?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); } ?>
как здесь : PHP: ключ-руководство