php - PHP有peek数组操作吗?

标签 php arrays stack queue

我想查看数组的第一个元素。此操作等同于此代码:

function peek($list)
{
  $item = array_shift($list);
  array_unshift($list, $item);
  return $item;
}

这段代码对我来说似乎真的很重,而且 peek 通常由队列和堆栈库提供。 php 是否有一个已经构建的函数或一些更有效的方法来做到这一点?我搜索了 php.net 但找不到任何东西。

为清楚起见的附加说明: 该数组不一定是数字索引的。数组也可能有一些未设置的项目(在数字索引数组的情况下)弄乱了数字顺序。假设 $list[0] 是第一个元素是不安全的。

最佳答案

current()函数将为您提供“当前”数组值。如果您不确定您的代码是否已经开始遍历数组,您可以使用 reset()相反 - 但是这重置迭代器,一个副作用 - 这也会给你第一个项目。像这样:

$item = current($list);

$item = reset($list);

编辑:以上两个函数适用于关联数组和数值数组。注意:既没有给出“键”,也没有给出“值”。如果您还需要“ key ”,请使用 key()获取当前“键”的方法(当前指的是在迭代数组的情况下程序在数组中指向的位置 - 参见 foreach、for、迭代器等)

关于php - PHP有peek数组操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28991041/

相关文章:

c++ - Stack.top() 在访问带有元素的堆栈时给出 bad_access_code

php - 将图像与 FPDF 中的文本对齐

c - 什么时候在 C 中未定义指针减法?

PHP 无限循环阻止访问其他脚本?

c++ - 数组指针算术题

php - 通过 XHR 请求将 MYSQL 数组从 PHP 返回到 Javascript

android - 如何清除 Android Stack 的 Activity ?

algorithm - 非递归实现树高和isBST的伪代码

javascript - 我应该将 PHP 与 ajax 结合起来将数据发送到服务器吗?

php - 如何获取业务电子邮件 ID 以响应 paypal api