将PHP多维数组按值排序为单一数组

3

我有一个多维数组,需要将其转换为排序后的一维数组。我尝试使用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个回答

2
你已经接近成功了。在 sort() 函数中,数组是通过引用传递的,并且在成功时返回 true,失败时返回 false。因此,你应该像这样对扁平化的数组应用 sort() 函数:

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

// display sorted array
var_dump($array);

这是参考资料:


1

sort()函数通过引用工作并返回truefalse,因此无需将结果分配给变量,因为源变量会被引用更改。


那么我该如何将数值从最小值排序到最大值? - sandip kakade
@dhanashri 排序后的数组与提供给排序函数的变量是同一个变量。 - rafwlaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接