Получить первый ключ в (возможно) ассоциативном массиве?

В Algol и его потомках, таких как Pascal и Ada, были использованы эквиваленты Colon, так как он приближается к символу слева. A / -эквиваленты для сравнения были начаты с языка С.

В Prolog нет различия между назначением и тестом равенства.

715
задан Blixt 15 July 2013 в 03:02
поделиться

3 ответа

Обновление 2019 г.

Начиная с PHP 7.3 , есть новая встроенная функция под названием array_key_first () , которая будет извлекать первый ключ из заданного массива без сброса внутреннего указателя. Дополнительную информацию можно найти в документации .


Вы можете использовать reset и клавишу :

reset($array);
$first_key = key($array);

По сути, это то же самое, что и ваш исходный код, но с немного меньше накладных расходов, и становится более очевидно, что происходит.

Просто не забудьте вызвать reset , или вы можете получить любой из ключей в массиве. Вы также можете использовать end вместо reset , чтобы получить последний ключ.

Если вы хотите, чтобы ключ получил первое значение, reset фактически возвращает его :

$first_value = reset($array);

Однако есть один особый случай, на который следует обратить внимание (поэтому сначала проверьте длину массива):

$arr1 = array(false);
$arr2 = array();
var_dump(reset($arr1) === reset($arr2)); // bool(true)
1291
ответ дан 22 November 2019 в 21:31
поделиться

key ($ an_array) даст вам первое изменение ключа

для каждого Blixt: вы должны вызвать reset ($ array); перед key ($ an_array) для сброса указателя на начало массива.

36
ответ дан 22 November 2019 в 21:31
поделиться

array_keys возвращает массив ключей. Возьмите первую запись. Кроме того, вы можете вызвать reset в массиве, а затем ключ . Последний подход, вероятно, немного быстрее (хотя я его не тестировал), но у него есть побочный эффект сброса внутреннего указателя.

76
ответ дан 22 November 2019 в 21:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: