Получить имя ключа значения массива

У меня есть массив как следующее:

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' по его индексу. Как я могу это сделать?

117

Решение

Если у вас есть значение и вы хотите найти ключ, используйте array_search() как это:

$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);

$key теперь будет содержать ключ для значения 'a' (то есть, 'first').

236

Другие решения

key($arr);

вернет значение ключа для текущего элемента массива

http://uk.php.net/manual/en/function.key.php

42

Если я правильно понимаю, вы не можете просто использовать:

foreach($arr as $key=>$value)
{
echo $key;
}

Увидеть Руководство по PHP

30

Если имя динамическое, то у вас должно быть что-то вроде

$arr[$key]

что означало бы, что $ key содержит значение ключа.

Ты можешь использовать array_keys() получить ВСЕ ключи массива, например

$arr = array('a' => 'b', 'c' => 'd')
$x = array_keys($arr);

даст вам

$x = array(0 => 'a', 1 => 'c');
14

Да, вы можете сказать, что php — один из немногих языков, которые предоставляют такую ​​поддержку.

foreach($arr as $key=>$value)
{

}
12

использование array_keys() чтобы получить массив всех уникальных ключей.

Обратите внимание, что массив с именованными ключами, как ваш $arr можно также получить с помощью числовых индексов, таких как $arr[0],

http://php.net/manual/en/function.array-keys.php

6

если вам нужно вернуть элементы массива с одинаковым значением, используйте array_keys() функция

$array = array('red' => 1, 'blue' => 1, 'green' => 2);
print_r(array_keys($array, 1));
4

Вот еще один вариант

$array = [1=>'one', 2=>'two', 3=>'there'];
$array = array_flip($array);
echo $array['one'];
3
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector