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'
по его индексу. Как я могу это сделать?
Ответы
Ответ 1
Если у вас есть значение и вы хотите найти ключ, используйте array_search()
следующим образом:
$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);
$key
теперь будет содержать ключ для значения 'a'
(то есть 'first'
).
Ответ 2
key($arr);
вернет значение ключа для текущего элемента массива
http://uk.php.net/manual/en/function.key.php
Ответ 3
Если я правильно понимаю, вы не можете просто использовать:
foreach($arr as $key=>$value)
{
echo $key;
}
См. Руководство по PHP
Ответ 4
Если имя динамическое, тогда у вас должно быть что-то вроде
$arr[$key]
который означает, что ключ $содержит значение ключа.
Вы можете использовать array_keys()
, чтобы получить ВСЕ ключи массива, например.
$arr = array('a' => 'b', 'c' => 'd')
$x = array_keys($arr);
даст вам
$x = array(0 => 'a', 1 => 'c');
Ответ 5
Да, вы можете infact php - один из немногих языков, которые предоставляют такую поддержку.
foreach($arr as $key=>$value)
{
}
Ответ 6
используйте array_keys()
чтобы получить массив всех уникальных ключей.
Обратите внимание, что массив с именованными ключами, такими как ваш $arr
также может быть доступен с помощью числовых индексов, таких как $arr[0]
.
http://php.net/manual/en/function.array-keys.php
Ответ 7
если вам нужно вернуть элементы массива с одинаковым значением, используйте array_keys()
$array = array('red' => 1, 'blue' => 1, 'green' => 2);
print_r(array_keys($array, 1));
Ответ 8
Вот еще один вариант
$array = [1=>'one', 2=>'two', 3=>'there'];
$array = array_flip($array);
echo $array['one'];
Ответ 9
Проверьте документацию для функции array_keys()
array_keys
Функция
Ответ 10
вы можете использовать ключевую функцию 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: key - Manual
Ответ 11
Спасибо за ответ на Stack Overflow!
Пожалуйста, обязательно ответьте на вопрос. Предоставьте подробности и поделитесь своими исследованиями! Но избегайте...
Обращение за помощью, разъяснения или ответы на другие ответы. Делать заявления, основанные на мнении; подкрепите их ссылками или личным опытом. Чтобы узнать больше, ознакомьтесь с нашими советами по написанию отличных ответов.