在 PHP 中,按子数组的值对数组进行排序

2022-08-30 20:44:24

我有一个由数组组成的数组。我想按子数组的属性对父数组进行排序。下面是一个示例

array(2){
    [0]=> array(3){
        [0]=> string(6) "105945"
        [1]=> string(10) "First name"
        [2]=> float(0.080878465391)
    }
    [1]=> array(3) {
        [0]=> string(6) "109145"
        [1]=> string(11) "Second name"
        [2]=> float(0.0504154818384)
    }
}

我想通过在子数组中升序对父数组进行排序,因此在这种情况下,结果将是子数组反转(,)。使用众多 PHP 排序函数中的任何一个都可以这样做吗?[2].0508


答案 1

您可以使用 usort 函数作为:

$arr = array(
    array("105945", "First name", 0.080878465391),
    array("109145", "Second name", 0.0504154818384)
);

function cmp($a, $b){
    if($a[2] == $b[2]){
        return 0;
    }
    return ($a[2] < $b[2]) ? -1 : 1;
}

usort($arr, "cmp");

答案 2

从 PHP >= 7.0 开始,您可以将 usort 与宇宙飞船运营商结合使用

usort($arr, function ($a, $b) {
        return $a[2] <=> $b[2];
    });

请参见: http://php.net/manual/de/migration70.new-features.php