PHP有peek数组操作吗?

Does PHP have a peek array operation?

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

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

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

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

current() function will give you the 'current' array-value. If you're not sure if your code has begun to iterate over the array, you can use reset() 而不是 - 但是这个 重置迭代器, 一个副作用 - 这也将给你第一个项目。像这样:

$item = current($list);

$item = reset($list);

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

是的,PHP 具有查看功能。它是函数 end()。 这会将指针设置为数组的最后一个元素和 return 那个值。 如果数组为空,它将 return false.

参见:https://www.php.net/manual/en/function.end.php

另外两个 stack-functions 是 array_pop() 和 array_push()。