这听起来像是一个愚蠢的问题。如何在事先不知道数组是否关联的情况下获取数组的第一个值?
为了获得数组的第一个元素,我想这样做:
function Get1stArrayValue($arr) { return current($arr); }
还好吗? 如果在函数调用之前移动了数组内部指针,它会产生问题吗? 有更好/更聪明/更胖的方法吗?
谢谢!
最佳答案
一个更好的主意可能是使用 reset其中“将数组的内部指针倒回第一个元素并返回第一个数组元素的值”
例子:
function Get1stArrayValue($arr) { return reset($arr); }
作为@therefromhere在下面的评论中指出,这个解决方案并不理想,因为它改变了内部指针的状态。但是,我认为这不是什么大问题,因为其他功能如 array_pop也重置它。
当遍历数组时无法使用它的主要问题不是问题,因为 foreach
对数组的副本进行操作。 PHP 手册指出:
Unless the array is referenced, foreach operates on a copy of the specified array and not the array itself.
这可以使用一些简单的测试代码来显示:
$arr = array("a", "b", "c", "d");
foreach ( $arr as $val ){
echo reset($arr) . " - " . $val . "\n";
}
结果:
a - a
a - b
a - c
a - d
关于php 获取数组的第一个值(关联与否),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230154/