PHP 二维数组按照指定的key排序
时间:2023-3-30 09:43 作者:wen 分类: PHP
- array_multisort():可对多维数组的一维或多维元素进行升序或降序排列;
示例代码如下:
$users = array(
array('id'=>1, 'name'=>'John', 'age'=>25),
array('id'=>2, 'name'=>'Bob', 'age'=>30),
array('id'=>3, 'name'=>'Alice', 'age'=>20)
);
//根据age升序排序
foreach ($users as $user) {
$ages[] = $user['age'];
}
array_multisort($ages, SORT_ASC, $users);
print_r($users);
- usort():通过用户自定义的比较函数对数组进行合对二维数组中的某些元;
示例代码如下:
$users = array(
array('id'=>1, 'name'=>'John', 'age'=>25),
array('id'=>2, 'name'=>'Bob', 'age'=>30),
array('id'=>3, 'name'=>'Alice', 'age'=>20)
);
//根据age降序排序
usort($users, function ($a, $b) {
return $b['age'] - $a['age'];
});
print_r($users);
- uasort():与usort()类似,但是保留数组键值的原始关系;
示例代码如下:
$users = array(
array('id'=>1, 'name'=>'John', 'age'=>25),
array('id'=>2, 'name'=>'Bob', 'age'=>30),
array('id'=>3, 'name'=>'Alice', 'age'=>20)
);
//根据age升序排序,保留key-value关系
uasort($users, function($a, $b){
return $a['age'] - $b['age'];
});
print_r($users);
需要注意的是,在定义比较函数时,我们需要按照指定的排序方式返回一个正数、负数或零,以便正确排序。如果返回结果大于0,则表示 $a > $b,返回结果小于0,则表示 $a < $b,返回结果等于0,则表示 $a = $b。
标签: PHP基础