php中array_reverse函数可反转数组顺序:一、基础用法返回重索引的新数组;二、设preserve_keys=true保留关联键名;三、赋值覆盖实现“原地”反转;四、仅反转多维数组外层;五、可结合排序等函数实现条件反转。

如果您需要将PHP数组中的元素顺序完全颠倒,可以使用内置函数array_reverse。以下是该函数的具体用法和多种应用方式:
一、基础用法:使用array_reverse函数反转索引数组
array_reverse函数接收一个数组作为参数,返回一个新数组,其中元素顺序与原数组相反,键名默认重新索引为数字索引。该方法适用于简单的一维索引数组。
1、定义一个索引数组,例如:$arr = [1, 2, 3, 4];
2、调用array_reverse函数:$reversed = array_reverse($arr);
立即学习“PHP免费学习笔记(深入)”;
3、输出结果:print_r($reversed); // 输出 Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 )
二、保留原始键名:启用preserve_keys参数
当数组为关联数组且需保持原有键名不被重置时,可将第二个参数preserve_keys设为true。此时反转后键名与值的位置互换,但键本身不变。
1、定义关联数组:$assoc = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];
2、调用带preserve_keys的array_reverse:$reversed_assoc = array_reverse($assoc, true);
3、输出结果:print_r($reversed_assoc); // 输出 Array ( [c] => cherry [b] => banana [a] => apple )
三、原地反转:结合array_values与赋值操作模拟就地修改
array_reverse本身不修改原数组,若需“就地”效果(即让原变量直接指向反转后数组),可通过赋值实现逻辑上的覆盖,配合array_values确保索引连续。
1、初始化数组:$data = ['x', 'y', 'z'];
2、执行反转并重新赋值:$data = array_values(array_reverse($data));
3、验证结果:var_dump($data); // 输出 array(3) { [0]=> string(1) "z" [1]=> string(1) "y" [2]=> string(1) "x" }
四、多维数组的逐层反转
array_reverse仅反转第一层元素顺序,对子数组内部结构无影响。若需深度反转,需配合递归或循环处理每个子数组。
1、定义二维数组:$matrix = [[1, 2], [3, 4], [5, 6]];
2、仅反转外层数组顺序:$outer_reversed = array_reverse($matrix);
3、输出外层反转结果:print_r($outer_reversed); // 输出 Array ( [0] => Array ( [0] => 5 [1] => 6 ) [1] => Array ( [0] => 3 [1] => 4 ) [2] => Array ( [0] => 1 [1] => 2 ) )
五、结合其他函数实现条件反转
可在反转前筛选或变换数组内容,例如先过滤偶数再反转,或对字符串数组按长度排序后反转,从而组合出更灵活的数据处理流程。
1、准备字符串数组:$words = ['hi', 'hello', 'a', 'world'];
2、按字符串长度升序排列后再反转(实现按长度降序):$sorted_desc = array_reverse(array_sort_by_length($words));
3、其中辅助函数定义为:function array_sort_by_length($arr) { usort($arr, function($a, $b) { return strlen($a) - strlen($b); }); return $arr; }











