2017-05-24 5 views
1

多次元配列を値でソートするにはどうすればよいですか?

例は、このように私の出力配列:値で配列を並べ替える方法はありますか?

[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 

    ) 

おかげ.. ASORT

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

それとも、uasortを使用することができます()と

+0

[値を保持してキーを保持する](https://stackoverflow.com/q/9898822/6521116) –

答えて

1

簡単な方法は、

あなたはuasort使用して要素をソートするためにarray_mapをすることができます。 PHP7 +バージョン< 7用の

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

のために、これはあなたが配列を値でソートするarsortを使用することができますuasort

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

変数$ aと$ bは何か分かりません。 – Rachmad

+0

それは変更されずに生きています。あなたの配列で$ arrayを設定してください。 –

+0

@Rachmadあなたは最初の方法を使うことができます。あなたの配列の配列を$ assiginすれば、array_mapの出力はあなたが望む結果になります。 –

1

のfuncitonを比較します。ループを作り、あなたが

+0

これは逆の結果になります。 –

0

を持っているあなたはasortと一緒array_walkを使用することができ、各サブアレイasort($arr)を呼び出します。ここでは

array_walk($array, 'asort'); 

working demoです。

関連する問題