2016-12-18 10 views
3

私は1つの多次元配列とこの配列を持っています。私はcall_user_func_array('array_merge', $ranges);この機能を使ってみました。この関数を使用した後、単一配列を取得します。私がsort()機能を単一アレイに使用すると、出力1が表示されます。PHP多次元配列から単一配列へ値で並べ替え

マイ配列

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 
) 

今私は1を示し、その後sort()機能を使用しています。なぜこれが起こるのですか?リファレンスとそのソース変数は、あなたはほとんどそこにいる参照

答えて

2

によって変更されるので、変数に結果asignする必要がtruefalseを返さないことで

1

sort()機能の仕事。 sort()関数では、配列は参照渡しされ、成功するとtrue、失敗した場合はfalseを返します。ですから、このような平坦化アレイ上sort()関数を適用する必要があります

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

// display sorted array 
var_dump($array); 

ここに参照です:

+0

ので、どのように私の並べ替え最低値から最高値まですることができます –

+0

@dhanashriソートされた配列は、このソート関数と同じ変数です。 – rafwlaz

+0

2番目の配列で 'sort()'関数を使用しましたが機能しませんでした –

関連する問題