php获取数组的第一个值(关联或非关联)
这听起来可能是个愚蠢的问题。如何在不事先知道数组是否关联的情况下获取数组的第一个值 为了得到数组的第一个元素,我想这样做:php获取数组的第一个值(关联或非关联),php,arrays,Php,Arrays,这听起来可能是个愚蠢的问题。如何在不事先知道数组是否关联的情况下获取数组的第一个值 为了得到数组的第一个元素,我想这样做: function Get1stArrayValue($arr) { return current($arr); } 可以吗? 如果在函数调用之前移动数组内部指针,是否会产生问题? 有更好/更聪明/更肥的方法吗 谢谢 更好的方法是使用“将数组的内部指针倒回到第一个元素并返回第一个数组元素的值” 例如: function Get1stArrayValue($arr) { re
function Get1stArrayValue($arr) { return current($arr); }
可以吗?
如果在函数调用之前移动数组内部指针,是否会产生问题?
有更好/更聪明/更肥的方法吗
谢谢 更好的方法是使用“将数组的内部指针倒回到第一个元素并返回第一个数组元素的值” 例如:
function Get1stArrayValue($arr) { return reset($arr); }
正如下面的评论所指出的,这个解决方案并不理想,因为它改变了内部指针的状态。但是,我不认为这是一个很大的问题,因为其他功能,例如重置它。迭代数组时不能使用它的主要问题不是问题,因为
foreach
操作数组的副本。PHP手册说明:
除非引用了数组,否则foreach操作的是指定数组的副本,而不是数组本身
这可以使用一些简单的测试代码来显示:
$arr = array("a", "b", "c", "d");
foreach ( $arr as $val ){
echo reset($arr) . " - " . $val . "\n";
}
结果:
a - a
a - b
a - c
a - d
要获取任何数组的第一个元素,需要先重置指针。
如果不介意从数组中丢失第一个元素,也可以使用 -将数组的第一个值移开并返回,将数组缩短一个元素并向下移动所有元素。所有数字数组键将被修改为从零开始计数,而文字键将不会被触摸 或者,您可以将数组包装到ArrayIterator中并使用:
如果这不是一个选项,请使用其他建议。
值得注意的是,因为它回放内部指针,那么如果你在迭代这个数组的中间,就不应该这样做。伟大的YACOBY,因此内部指针不受Frach循环的影响。我想知道如何定义关联数组中的“第一”元素;function Get1stArrayValue($arr) {
return reset($arr);
}
$array = array("foo" => "apple", "banana", "cherry", "damson", "elderberry");
$iterator = new ArrayIterator($array);
$iterator->seek(0);
echo $iterator->current(); // apple