如何在php中对数组进行排序?

如何在php中对数组进行排序?,php,arrays,Php,Arrays,我有这个数组。如何根据desc或asc对id进行排序 Array ( [0] => Array ( [data] => Array ( [id] => 1 [title] => Ferrari [price] => 15 [mod

我有这个数组。如何根据desc或asc对id进行排序

Array
(
    [0] => Array
        (
            [data] => Array
                (
                    [id] => 1
                    [title] => Ferrari
                    [price] => 15
                    [model] => 1997
                    [color] => Green
                    [speed] => 80
                )

        )

    [1] => Array
        (
            [data] => Array
                (
                    [id] => 3
                    [title] => Audi
                    [price] => 255
                    [model] => 55
                    [color] => Green
                    [speed] => 99
                )

        )

    [2] => Array
        (
            [data] => Array
                (
                    [id] => 4
                    [title] => BMW
                    [price] => 55
                    [model] => 444
                    [color] => Blue
                    [speed] => 123
                )

        )

)

谢谢。

您可以使用
usort

usort($array, function($a, $b) {
    return $a['data']['id'] < $b['data']['id']? -1 : 1;
});
usort($array,function($a,$b){
返回$a['data']['id']<$b['data']['id']?-1:1;
});

您可以使用
usort

usort($array, function($a, $b) {
    return $a['data']['id'] < $b['data']['id']? -1 : 1;
});
usort($array,function($a,$b){
返回$a['data']['id']<$b['data']['id']?-1:1;
});

您可以使用
usort

usort($array, function($a, $b) {
    return $a['data']['id'] < $b['data']['id']? -1 : 1;
});
usort($array,function($a,$b){
返回$a['data']['id']<$b['data']['id']?-1:1;
});

您可以使用
usort

usort($array, function($a, $b) {
    return $a['data']['id'] < $b['data']['id']? -1 : 1;
});
usort($array,function($a,$b){
返回$a['data']['id']<$b['data']['id']?-1:1;
});

我对多维数组排序进行了快速搜索,发现了这个问题。这似乎是一个很好的解决办法

由于将子数组封装在“数据”数组中,因此需要更改函数的第3行:

function subval_sort($a,$subkey) {
    foreach($a as $k=>$v) {
        $b[$k] = strtolower($v['data'][$subkey]);
    }
    asort($b);
    foreach($b as $key=>$val) {
        $c[] = $a[$key];
    }
    return $c;
}

$sorted_cars = subval_sort($car_array,'id'); 
print_r($sorted_cars);

我从那里开始,看看它会返回什么。

我对多维数组排序进行了快速搜索,找到了这个。这似乎是一个很好的解决办法

由于将子数组封装在“数据”数组中,因此需要更改函数的第3行:

function subval_sort($a,$subkey) {
    foreach($a as $k=>$v) {
        $b[$k] = strtolower($v['data'][$subkey]);
    }
    asort($b);
    foreach($b as $key=>$val) {
        $c[] = $a[$key];
    }
    return $c;
}

$sorted_cars = subval_sort($car_array,'id'); 
print_r($sorted_cars);

我从那里开始,看看它会返回什么。

我对多维数组排序进行了快速搜索,找到了这个。这似乎是一个很好的解决办法

由于将子数组封装在“数据”数组中,因此需要更改函数的第3行:

function subval_sort($a,$subkey) {
    foreach($a as $k=>$v) {
        $b[$k] = strtolower($v['data'][$subkey]);
    }
    asort($b);
    foreach($b as $key=>$val) {
        $c[] = $a[$key];
    }
    return $c;
}

$sorted_cars = subval_sort($car_array,'id'); 
print_r($sorted_cars);

我从那里开始,看看它会返回什么。

我对多维数组排序进行了快速搜索,找到了这个。这似乎是一个很好的解决办法

由于将子数组封装在“数据”数组中,因此需要更改函数的第3行:

function subval_sort($a,$subkey) {
    foreach($a as $k=>$v) {
        $b[$k] = strtolower($v['data'][$subkey]);
    }
    asort($b);
    foreach($b as $key=>$val) {
        $c[] = $a[$key];
    }
    return $c;
}

$sorted_cars = subval_sort($car_array,'id'); 
print_r($sorted_cars);

我将从那里开始,看看结果如何。

您希望得到什么结果?到目前为止您有没有尝试过?
array\u multisort()
。“如何对多维数组排序”。检查您希望得到的结果是什么?到目前为止您有没有尝试过?
array\u multisort()
。“如何对多维数组排序”。检查您希望得到的结果是什么?到目前为止您有没有尝试过?
array\u multisort()
。“如何对多维数组排序”。检查您希望得到的结果是什么?到目前为止您有没有尝试过?
array\u multisort()
。“如何对多维数组排序”。检查