Return first key of associative array in PHP

一个人想着一个人 提交于 2019-11-28 17:27:47

Although array_shift(array_keys($array)); will work, current(array_keys($array)); is faster as it doesn't advance the internal pointer.

Either one will work though.

Update

As @TomcatExodus noted, array_shift(); expects an array passed by reference, so the first example will issue an error. Best to stick with current();

You can use reset and key:

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

or, you can use a function:

function firstIndex($a) { foreach ($a as $k => $v) return $k; }
$key = firstIndex( $array );
array_shift(array_keys($array))

each() still a temporary required, but potentially a much smaller overhead than using array_keys().

What about using array_slice (in combination with array_keys for associative arrays)?

$a = range(0,999999);
var_dump(memory_get_peak_usage());
$k = array_keys(array_slice($a, 0, 1, TRUE))[0];
var_dump(memory_get_peak_usage());
var_dump($k);
$k = array_keys($a)[0];
var_dump(memory_get_peak_usage());

Gives as output (at least with me):

int(36354360)
int(36355112)
int(0)
int(72006024)
int(0)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!