2017-10-30 17 views
-1

この配列を降順で並べ替える必要がありますが、現在固執していて単純な解決策は考えられません。PHPで多次元配列をキー値で並べ替える

これは配列構造である:

 
$data = Array 
(
    [Name1] => Array 
     (
      [1] => 40-45 
      [0] => 124791.63 
     ) 

    [Name2] => Array 
     (
      [1] => 46 
      [0] => 2624.7 
     ) 

    [Name3] => Array 
     (
      [1] => 50 
      [0] => 37784.27 
     ) 

    [Name4] => Array 
     (
      [1] => 52 
      [0] => 1008 
     ) 
) 

私は[0]、降順に、あなたは現在の配列があるためソートされていない見ることができるように[NAME1]値$データによって、それをソートしたいです値は次のように行く: - 2624.7 -

124791.63 37784.27 ...など

これまでの任意の簡単な解決策はありますか?私はグーグルだが、私はこの特定の問題に対する答えを見つけることができなかった。

+2

これはかなり頼まれてい...あなたは、彼らが「多次元配列をソートする」についての他の質問を見て発見しましたあなたが必要としていることはうまくいかなかったのですか – IncredibleHat

+0

'array_multisort($ data、array_column($ data、0))'はそれを行うべきです。または、検索する関数をいくつか追加します。 – jh1711

+0

クレイジーその質問の重複数、あなたの友人を検索! (今日はもうフラグを立てられません:-0 – Nic3500

答えて

0

これを行うオプションは、uasortです。例えば

$data = [ 
    'Name1' => [ 
     "124791.63", 
     "40-45" 
    ], 
    'Name2' => [ 
     "2624.7", 
     "46" 
    ], 
    'Name3' => [ 
     "37784.27", 
     "50" 
    ], 
    'Name4' => [ 
     "1008", 
     "52" 
    ] 
]; 


function sortByValue($a, $b) { 
    return $a[0] < $b[0]; 
} 

uasort($data, 'sortByValue'); 

echo "<pre>"; 
print_r($data); 

はになります:

Array 
(
    [Name1] => Array 
     (
      [0] => 124791.63 
      [1] => 40-45 
     ) 

    [Name3] => Array 
     (
      [0] => 37784.27 
      [1] => 50 
     ) 

    [Name2] => Array 
     (
      [0] => 2624.7 
      [1] => 46 
     ) 

    [Name4] => Array 
     (
      [0] => 1008 
      [1] => 52 
     ) 

) 
関連する問題