PHP 是否有扫视数组操作


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() 函数会给你 'current' 数组值。 如果你不确定你的代码是否已经开始迭代数组,你可以使用 reset() 代替 - 但这重置迭代器,这是一个副作用 - 这也将为您提供第一项。 喜欢这个:

$item = current($list);

$item = reset($list);

编辑:上述两个函数适用于关联数组和数字数组。 注意:两者都没有给出"键",只给出"值"。 如果你还需要"key",请使用 key() 方法来获取当前的"key"(当前是指在迭代数组的情况下程序在数组中指向的位置 - 参见 foreach、for、iterators 等)

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

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

另外两个堆栈函数是 array_pop() 和 array_push()。