php 按照数组的值从大到小排序
时间: 2024-11-23 14:31:11 浏览: 4
在 PHP 中,如果你想要按照数组的值(数值型)从大到小对数组进行排序,可以使用 `asort()` 函数,它会保留键值关联,并根据值进行升序排列。如果想要降序排列,你需要先通过 `-` 符号将值取负数,然后再排序。
这是一个简单的例子:
```php
<?php
$array = array(3, 1, 4, 1, 5, 9, 2, 6, 5); // 假设这是一个包含数值的数组
// 先转换为负数,然后按降序排列
arsort($array);
// 输出结果
print_r($array);
```
运行上述代码后,数组将会按照数值从大到小的顺序排列:
```
Array
(
[9] => 5
[6] => 4
[5] => 5
[4] => 2
[3] => 1
[2] => 1
)
```
如果你想保持原始键值对应,可以使用 `ksort()` 函数结合 `-` 取负:
```php
ksort($array, SORT_NUMERIC); // 使用ksort,保持键值对应
arsort($array);
// 输出结果
print_r($array);
```
这会得到相同的降序排列结果,但键是有序的。
相关问题
php数组排序从大到小
可以使用PHP中的`arsort()`函数来实现数组按值从大到小的排序。
示例代码:
```
$numbers = array(10, 5, 8, 20, 3);
arsort($numbers);
print_r($numbers);
```
输出结果:
```
Array
(
[3] => 20
[0] => 10
[2] => 8
[1] => 5
[4] => 3
)
```
在上面的示例代码中,我们首先定义了一个包含5个数字的数组。然后使用`arsort()`函数来对数组进行排序,排序后的结果按照值从大到小排列。最后,我们使用`print_r()`函数输出排序后的数组。
php 二维数组排序从大到小
可以使用PHP中的`usort()`函数来实现二维数组按照指定键的值从大到小排序。
示例代码:
```
$students = array(
array('name' => 'Tom', 'age' => 18, 'score' => 90),
array('name' => 'John', 'age' => 20, 'score' => 85),
array('name' => 'Mary', 'age' => 19, 'score' => 95),
array('name' => 'Peter', 'age' => 21, 'score' => 80)
);
usort($students, function($a, $b) {
return $b['score'] - $a['score'];
});
print_r($students);
```
输出结果:
```
Array
(
[0] => Array
(
[name] => Mary
[age] => 19
[score] => 95
)
[1] => Array
(
[name] => Tom
[age] => 18
[score] => 90
)
[2] => Array
(
[name] => John
[age] => 20
[score] => 85
)
[3] => Array
(
[name] => Peter
[age] => 21
[score] => 80
)
)
```
在上面的示例代码中,我们定义了一个包含四个学生信息的二维数组。然后使用`usort()`函数来对数组进行排序,传入一个匿名函数用于指定排序规则,这里我们按照`score`字段的值从大到小进行排序。最后,我们使用`print_r()`函数输出排序后的数组。
阅读全文