«

PHP 二维数组按照指定的key排序

时间:2023-3-30 09:43     作者:wen     分类: PHP


  1. 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);
  1. 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);
  1. 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基础