确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?
确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?
当前回答
今天,我必须搜索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_keys返回一个键数组。取第一个条目。或者,您可以调用数组上的reset,然后调用key。后一种方法可能稍微快一点(Thoug我没有测试它),但它有重置内部指针的副作用。
list($firstKey) = array_keys($yourArray);
对于7.3.0之前的@Blixt回答,可以使用此polyfill:
if (!function_exists('array_key_first')) {
function array_key_first(array $array) {
return key(array_slice($array, 0, 1, true));
}
}
我认为最好和最快的方法是:
$first_key=key(array_slice($array, 0, 1, TRUE))
你可以玩你的阵列
$daysArray = array('Monday', 'Tuesday', 'Sunday');
$day = current($transport); // $day = 'Monday';
$day = next($transport); // $day = 'Tuesday';
$day = current($transport); // $day = 'Tuesday';
$day = prev($transport); // $day = 'Monday';
$day = end($transport); // $day = 'Sunday';
$day = current($transport); // $day = 'Sunday';
要获取数组的第一个元素,可以使用current,最后一个元素可以使用end
Edit
为了不获得更多的反对票,您可以使用array_keys将key转换为value,并如上所示使用。