确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?
确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?
当前回答
$myArray = array(
2 => '3th element',
4 => 'first element',
1 => 'second element',
3 => '4th element'
);
echo min(array_keys($myArray)); // return 1
其他回答
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));
}
}
这是我找到的最简单的方法。快速且只有两行代码:-D
$keys = array_keys($array);
echo $array[$keys[0]];
如果效率对您来说不是那么重要,您可以在PHP5.4(或更高版本)中使用array_keys($yourArray)[0]。
示例:
# 1
$arr = ["my" => "test", "is" => "best"];
echo array_keys($arr)[0] . "\r\n"; // prints "my"
# 2
$arr = ["test", "best"];
echo array_keys($arr)[0] . "\r\n"; // prints "0"
# 3
$arr = [1 => "test", 2 => "best"];
echo array_keys($arr)[0] . "\r\n"; // prints "1"
与解决方案相比的优势:
list($firstKey) = array_keys($yourArray);
就是可以将array_keys($arr)[0]作为函数参数传递(即doSomething(array_key($arr)[0],$otherParameter))。
HTH
使用:
$array = ['po','co','so'];
echo reset($array);
结果:po