ZetCode

PHP prev 函数

最后修改于 2025 年 3 月 13 日

PHP 的 prev 函数将数组的内部指针移动到前一个元素,并返回其值。这是 PHP 数组导航的一部分。

基本定义

prev 函数将内部数组指针向后移动。它返回前一个元素的值,如果没有更多元素,则返回 false。

语法:prev(array &$array): mixed。该函数会影响数组的内部指针。它是 next 的反向操作。

基本 prev 示例

这演示了使用 prev 在数组中向后移动。

basic_prev.php
<?php

$fruits = ['Apple', 'Banana', 'Cherry'];

// Move to end first
end($fruits);

echo prev($fruits) . "\n"; 
echo prev($fruits) . "\n"; 
var_dump(prev($fruits));   

我们首先使用 end 移动到末尾,然后使用 prev 两次。第三次调用返回 false,因为我们已经到达了数组的开头。

与 next 结合使用

这展示了 prevnext 如何一起工作。

prev_next.php
<?php

$colors = ['Red', 'Green', 'Blue'];

// Start at first element
reset($colors);

echo next($colors) . "\n"; 
echo prev($colors) . "\n"; 
echo next($colors) . "\n"; 

我们重置指针,使用 next 向前移动,然后使用 prev 向后移动,然后再向前移动。指针按预期移动。

在循环中

在循环中使用 prev 来向后遍历数组。

prev_loop.php
<?php

$numbers = [10, 20, 30, 40];

// Start at end
end($numbers);

while ($current = prev($numbers)) {
    echo $current . "\n";
}

这将输出 40, 30, 20, 10。当 prev 返回 false 时,循环停止。请注意,在这种方法中它不会处理第一个元素。

与关联数组

prev 与关联数组的工作方式与索引数组一样。

associative_prev.php
<?php

$user = [
    'name' => 'Alice',
    'age' => 25,
    'email' => 'alice@example.com'
];

end($user);

do {
    $key = key($user);
    $value = current($user);
    echo "$key: $value\n";
} while (prev($user));

这以相反的顺序输出数组。do-while 确保我们在移动指针之前处理当前元素。

边缘情况:空数组

prev 如何处理空数组。

empty_array.php
<?php

$empty = [];

end($empty);
var_dump(prev($empty)); 

如果没有元素,prev 立即返回 false。这与它到达非空数组的开头时的行为相符。

最佳实践

来源

PHP prev 文档

本教程涵盖了 PHP 的 prev 函数,并提供了实际示例,展示了它在数组导航场景中的用法。

作者

我叫 Jan Bodnar,是一位热情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我撰写了 1,400 多篇文章和 8 本电子书。我拥有超过十年的编程教学经验。

列出 所有 PHP 数组函数