对二维数组的每行内的值进行排序

问题描述 投票:0回答:3

我的输入数组是这样的:

[0] => Array
    (
        [0] => 2
        [1] => 5
        [2] => 8
        [3] => 1
    )

[1] => Array
    (
        [0] => 7
        [1] => 4
        [2] => 1
    )

我想要的结果是:

[0] => Array
    (
        [3] => 1
        [0] => 2
        [1] => 5
        [2] => 8
    )

[1] => Array
    (
        [2] => 1
        [1] => 4
        [0] => 7

    )
php arrays sorting multidimensional-array
3个回答
2
投票

简单的分类方式

array_map(function($v){asort($v); return $v;}, $array);

或者你可以使用uasort()

您可以使用 uasort 和 array_map 对元素进行排序。适用于 php7+

array_map(function($v){uasort($v, function($a, $b){return $a <=> $b;}); return $v;}, $array);

版本<7 use this compare funciton of uasort

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

2
投票

您可以将

array_walk
asort
一起使用:

array_walk($array, 'asort');

这是工作演示


1
投票

您可以使用

arsort
按值对数组进行排序。创建一个循环并为您拥有的每个子数组调用
asort($arr)

© www.soinside.com 2019 - 2024. All rights reserved.