PHP有一个peek数组操作吗?

时间:2015-03-11 15:39:59

标签: php arrays stack queue

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

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

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

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

2 个答案:

答案 0 :(得分:8)

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

$item = current($list);

$item = reset($list);

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

答案 1 :(得分:0)

是的,PHP具有偷看功能。它是函数end()。 这会将指针设置为数组的最后一个元素,并返回该值。 如果数组为空,则将返回false。

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

其他两个堆栈函数是array_pop()和array_push()。