php二维数组 按某个值排序
时间: 2023-09-12 18:13:22 浏览: 43
可以使用 PHP 中的 `usort` 函数来对二维数组按照指定的值进行排序。以下是一个示例代码:
```php
<?php
// 定义一个二维数组
$arr = array(
array('name' => 'Tom', 'age' => 20),
array('name' => 'Jerry', 'age' => 18),
array('name' => 'Alice', 'age' => 25)
);
// 定义一个回调函数,用于比较两个数组元素的大小
function compare($a, $b) {
if ($a['age'] == $b['age']) {
return 0;
}
return ($a['age'] < $b['age']) ? -1 : 1;
}
// 使用 usort 函数进行排序
usort($arr, 'compare');
// 输出排序后的数组
print_r($arr);
?>
```
以上代码会按照年龄从小到大的顺序排序输出每个人的名字和年龄。你可以根据自己的需求修改回调函数 `compare` 来按照不同的值进行排序。
相关问题
php 二维数组按某个字段排序
可以使用 PHP 中的 `array_multisort` 函数来对二维数组按照指定的字段进行排序。以下是一个示例代码:
```php
<?php
// 定义一个二维数组
$arr = array(
array('name' => 'Tom', 'age' => 20),
array('name' => 'Jerry', 'age' => 18),
array('name' => 'Alice', 'age' => 25)
);
// 定义一个数组,用于存储需要排序的字段
$sortArr = array();
foreach ($arr as $key => $value) {
$sortArr[$key] = $value['age'];
}
// 使用 array_multisort 函数进行排序
array_multisort($sortArr, SORT_ASC, $arr);
// 输出排序后的数组
print_r($arr);
?>
```
以上代码会按照年龄从小到大的顺序排序输出每个人的名字和年龄。你可以根据自己的需求修改数组 `$sortArr` 来指定需要排序的字段以及排序方式。
php 二维数组按key排序 并保留key
您好,对于 PHP 中的二维数组,您可以使用 `array_multisort()` 函数对数组进行排序。下面是一个示例代码,可以根据指定的键名对数组进行排序并保留键名:
```php
// 待排序的二维数组
$data = array(
array('id' => 1, 'name' => 'Tom', 'age' => 20),
array('id' => 2, 'name' => 'Jerry', 'age' => 30),
array('id' => 3, 'name' => 'Mike', 'age' => 25),
);
// 指定要排序的键名
$key = 'age';
// 提取要排序的键名到一个新数组
$sort_arr = array();
foreach ($data as $k => $v) {
$sort_arr[$k] = $v[$key];
}
// 使用 array_multisort 函数对数组进行排序
array_multisort($sort_arr, SORT_ASC, SORT_NUMERIC, $data);
// 输出排序后的数组
print_r($data);
```
在上面的示例代码中,我们首先定义了一个待排序的二维数组 `$data`,其中每个元素都包含 `id`、`name` 和 `age` 三个键。然后,我们指定要根据哪个键进行排序,这里是 `age`。接着,我们使用 `foreach` 循环将要排序的键名提取到一个新数组 `$sort_arr` 中。最后,我们使用 `array_multisort()` 函数对 `$sort_arr` 数组进行排序,并将排序结果应用到 `$data` 数组上。排序规则是根据每个元素的 `$key` 值进行比较。最终,我们输出排序后的数组,可以看到 `$data` 数组已经按照 `age` 键的值从小到大进行了排序,并且在排序过程中保留了每个元素的键名。
阅读全文