Ключ ассоциативного массива динамично сгенерирован. Как я получаю "Ключ" такого массива?
$arr = array ('dynamic_key' => 'Value');
Я знаю, что возможно получить доступ к нему через цикл foreach как это:
foreach ($arr as $key => $val) echo "Key value is $key";
Однако я знаю, что этот массив будет иметь только один ключ и захочет избежать цикла foreach. Действительно ли возможно получить доступ к значению этого элемента каким-либо другим способом? Или получите ключевое имя?
редактировать: http://php.net/each говорит:
каждыйПредупреждение Эта функция УСТАРЕЛА, начиная с PHP 7.2.0. Настоятельно не рекомендуется полагаться на эту функцию.
Можно использовать клавишу () .
Если вы все равно собираетесь получить значение, вы также можете использовать each () и list () .
$arr = array ('dynamic_key' => 'Value');
list($key, $value) = each($arr);
echo $key, ' -> ', $value, "\n";
выводит динамический_ключ -> Значение
Вы можете использовать array_shift (array_keys ($ arr))
(с array_values
для получения значения), но он все еще делает цикл внутри.
$keys = array_keys($arr);
echo $keys[0];
Или используйте array_values ()
для значения.
А как насчет array_keys()?
Хотя она возвращает массив...
Вы имеете в виду, что у вас есть значение entry и вы хотите получить ключ?
array_search ($value, $array)
Возвращает ключ для needle, если он найден в массиве, FALSE в противном случае.
Если иголка найдена в стоге сена более более одного раза, возвращается первый подходящий ключ возвращается. Чтобы вернуть ключи для всех подходящих значений, используйте array_keys() с необязательным параметром search_value вместо этого.
подробнее : http://php.net/manual/en/function.array-search.php