确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?
确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?
当前回答
key($an_array)将为您提供第一个密钥
edit-per-Blixt:您应该调用reset($array);before键($anarray)将指针重置到数组的开头。
其他回答
一个内衬:
$array = array('key1'=>'value1','key2'=>'value2','key3'=>'key3');
echo key( array_slice( $array, 0, 1, true ) );
# echos 'key1'
今天,我必须搜索POST请求返回的数组的第一个密钥。(并注意表单id等的编号)
我发现了这个:返回PHP中关联数组的第一个键
http://php.net/key
我已经做到了,而且很有效。
$data = $request->request->all();
dump($data);
while ($test = current($data)) {
dump($test);
echo key($data).'<br />';die();
break;
}
也许会比其他人节省15分钟。CYA。
使用:
$array = ['po','co','so'];
echo reset($array);
结果:po
这是我找到的最简单的方法。快速且只有两行代码:-D
$keys = array_keys($array);
echo $array[$keys[0]];
因为可以使用PHP 7.3.0函数array_key_first()。
有几种方法可以为PHP7.3.0之前的版本提供此功能。可以使用array_keys(),但这可能效率很低。也可以使用reset()和key(),但这可能会更改内部数组指针。一个有效的解决方案,它不改变内部数组指针,写为polyfill:
<?php
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return null;
}
}
?>