PHP 大会日本 2024

rsort

(PHP 4, PHP 5, PHP 7, PHP 8)

rsort按降序排序数组

描述

rsort(数组 &$array, 整数 $flags = SORT_REGULAR): true

按值将 array 降序排序。

注意:

如果两个成员比较结果相等,则保留其原始顺序。在 PHP 8.0.0 之前,它们在排序数组中的相对顺序是不确定的。

注意: 此函数会为 array 中的元素分配新的键。它将删除可能已分配的任何现有键,而不仅仅是重新排序键。

注意:

将数组的内部指针重置为第一个元素。

参数

array

输入数组。

flags

可选的第二个参数 flags 可用于使用以下值修改排序行为

排序类型标志

返回值

始终返回 true

变更日志

版本 描述
8.2.0 返回值类型现在为 true;之前为 布尔值

范例

示例 #1 rsort() 示例

<?php
$fruits
= array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach (
$fruits as $key => $val) {
echo
"$key = $val\n";
}
?>

以上示例将输出

0 = orange
1 = lemon
2 = banana
3 = apple

水果已按反向字母顺序排序。

参见

添加注释

用户贡献的注释 3 条注释

Alex M
19 年前
一种更简洁(我认为)的方法,用于根据文件的修改日期按反向顺序排序文件列表。

<?php
$path
= $_SERVER[DOCUMENT_ROOT]."/files/";
$dh = @opendir($path);

while (
false !== ($file=readdir($dh)))
{
if (
substr($file,0,1)!=".")
$files[]=array(filemtime($path.$file),$file); #二维数组
}
closedir($dh);

if (
$files)
{
rsort($files); #按文件修改时间排序

#完成!显示按修改日期排序的文件
foreach ($files as $file)
echo
"$file[0] $file[1]<br>\n"; #file[0]=Unix 时间戳;file[1]=文件名
}
?>
ray at non-aol dot com
20 年前
与 sort() 一样,rsort() 为数组中的元素分配新的键。它将删除您可能已分配的任何现有键,而不仅仅是重新排序键。这意味着它将破坏关联键。

$animals = array("dog"=>"large", "cat"=>"medium", "mouse"=>"small");
print_r($animals);
//数组 ( [dog] => large [cat] => medium [mouse] => small )

rsort($animals);
print_r($animals);
//数组 ( [0] => small [1] => medium [2] => large )

使用 KSORT() 或 KRSORT() 保留关联键。
slevy1 at pipeline dot com
23 年前
我以为 rsort 在对字符串的多维数组(已使用 usort() 排序)成功工作了。但是,我今天注意到数组仅部分按降序排列。我尝试对其使用 array_reverse,这似乎解决了问题。
To Top