PHP多维数组到单个数组按值排序

时间:2016-12-18 20:11:39

标签: php arrays sorting multidimensional-array

我有一个多维数组,这个数组我必须转换为带排序的单个数组。我试图使用call_user_func_array('array_merge', $ranges);这个函数。使用此函数后获取单个数组。当我在单个数组上使用sort()函数时,显示输出1

我的阵列

    Array
(
    [range1] => Array
        (
            [0] => 1113
            [1] => 2224 
        )

    [range2] => Array
        (
            [0] =>  500
            [1] => 1112
        )

    [range3] => Array
        (
            [0] => 2225
            [1] => 4446
        )
)

使用call_user_func_array('array_merge', $ranges); 输出

    Array
(
    [0] => 1113
    [1] => 2224 
    [2] =>  500
    [3] => 1112
    [4] => 2225
    [5] => 4446
)

现在我使用sort()函数然后显示1。为什么会这样?

2 个答案:

答案 0 :(得分:2)

你快到了。在sort()函数中,数组通过引用传递,成功时返回true,失败时返回false。所以你应该在扁平数组上应用sort()函数,如下所示:

$array = call_user_func_array('array_merge', $ranges);
sort($array);

// display sorted array
var_dump($array);

以下是参考资料:

答案 1 :(得分:1)

sort()函数按引用工作并返回truefalse,因此无需将结果赋值给变量,因为源变量已通过引用更改