php 获取数组的第一个值(关联与否)

标签 php arrays

这听起来像是一个愚蠢的问题。如何在事先不知道数组是否关联的情况下获取数组的第一个值?

为了获得数组的第一个元素,我想这样做:

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/

相关文章:

javascript - 无法从 Angular 中的 JSON 对象填充数组

python - 如何在内部计算 numpy 数组的数据类型?

javascript - 从两个数组创建一个对象

php - 每 X 小时 Laravel 任务调度

php - 准备好的动态mysql查询

javascript - 访问 Javascript 对象内的第三层

arrays - Haskell 中根据时间戳将数组拆分为 block

javascript - 如何让多个模态框出现在 while 循环中?

php - 有没有办法在 PHP 正则表达式中指定 "any character but [aeiou]"?

php - Cakephp根据请求保存数据