ZetCode

PHP array_reverse 函数

最后修改于 2025 年 3 月 13 日

PHP array_reverse 函数返回一个元素顺序反转的数组。它对于从末尾开始处理数组很有用。

基本定义

array_reverse 函数反转数组元素的顺序。它可以根据第二个参数保留或重置数值键。

语法:array_reverse(array $array, bool $preserve_keys = false): array。当 $preserve_keys 为 true 时,数值键在反转后的数组中被保留。

基本 array_reverse 示例

这演示了使用默认参数的简单数组反转。

basic_array_reverse.php
<?php

$numbers = [1, 2, 3, 4, 5];
$reversed = array_reverse($numbers);

print_r($reversed);

该示例反转了一个简单的数值数组。请注意,默认情况下,新的数值键从反转数组中的 0 开始分配。

保留数组键

这展示了如何在反转数组时保留原始的数值键。

preserve_keys.php
<?php

$colors = [
    10 => 'red',
    20 => 'green',
    30 => 'blue'
];
$reversed = array_reverse($colors, true);

print_r($reversed);

使用 true 作为第二个参数,原始的数值键在反转后的数组中被保留。这对于关联数组很有用。

反转关联数组

演示了字符串键在反转数组中始终被保留。

associative_array.php
<?php

$user = [
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
];
$reversed = array_reverse($user);

print_r($reversed);

关联数组中的字符串键始终被保留,无论第二个参数是什么。元素顺序被反转,同时保留键。

多维数组反转

展示了 array_reverse 如何仅影响多维数组的顶层。

multidimensional_array.php
<?php

$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
$reversed = array_reverse($matrix);

print_r($reversed);

只有外层数组被反转,而内层数组保持其顺序。要反转内层数组,您需要递归地应用 array_reverse。

实际用例

演示了 array_reverse 可能有用的真实场景。

practical_use.php
<?php

$logEntries = [
    '2023-01-01' => 'System started',
    '2023-01-02' => 'User logged in',
    '2023-01-03' => 'Data processed',
    '2023-01-04' => 'System shutdown'
];

// Display log entries in reverse chronological order
$reversedLogs = array_reverse($logEntries, true);

foreach ($reversedLogs as $date => $entry) {
    echo "$date: $entry\n";
}

此示例展示了如何以逆时间顺序显示日志条目。日期键被保留,以保持日期和事件之间的关联。

最佳实践

来源

PHP array_reverse 文档

本教程介绍了 PHP array_reverse 函数,并提供了实用示例,展示了它在各种数组操作场景中的用法。

作者

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

列出 所有 PHP 数组函数