2017-01-27 4 views
0

グループごとに異なる値を持つ配列をソートする際には助けが必要です。私は降順でグループをソートしたい。下記をご覧持ってください。特定のキー値に基づいて配列のグループをソートする必要があります

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [name] => rose 
        [price] => 3 
       ) 

      [1] => Array 
       (
        [name] => daisy 
        [price] => 3 
       ) 

      [2] => Array 
       (
        [name] => orchid 
        [price] => 3 
       ) 

     ) 
[1] => Array 
    (
     [0] => Array 
      (
       [name] => rose 
       [price] => 1 
      ) 

     [1] => Array 
      (
       [name] => daisy 
       [price] => 1 
      ) 

     [2] => Array 
      (
       [name] => orchid 
       [price] => 1 
      ) 

    ) 

[2] => Array 
    (
     [0] => Array 
      (
       [name] => rose 
       [price] => 2 
      ) 

     [1] => Array 
      (
       [name] => daisy 
       [price] => 2 
      ) 

     [2] => Array 
      (
       [name] => orchid 
       [price] => 2 
      ) 

    ) 

) 

を、私はそれがこのようにソートすることにしたい:私はグループの大規模な配列を持っている

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [name] => rose 
        [price] => 3 
       ) 

      [1] => Array 
       (
        [name] => daisy 
        [price] => 3 
       ) 

      [2] => Array 
       (
        [name] => orchid 
        [price] => 3 
       ) 

     ) 

[1] => Array 
    (
     [0] => Array 
      (
       [name] => rose 
       [price] => 2 
      ) 

     [1] => Array 
      (
       [name] => daisy 
       [price] => 2 
      ) 

     [2] => Array 
      (
       [name] => orchid 
       [price] => 2 
      ) 

    ) 

[2] => Array 
    (
     [0] => Array 
      (
       [name] => rose 
       [price] => 1 
      ) 

     [1] => Array 
      (
       [name] => daisy 
       [price] => 1 
      ) 

     [2] => Array 
      (
       [name] => orchid 
       [price] => 1 
      ) 

    ) 

) 

注意。しかし、これはアイデアを得るための一部です。

上記の配列が価格キーに従って降順にソートされていることがわかります。

ありがとうございました!

+0

他にもたくさんの質問がありましたが、もう1つ書きました。何か試したことがありますか? –

+0

グループは価格に基づいていますか? –

+0

私はuasortを試みましたが、うまくいきませんでした。 –

答えて

0

試してみてください。

uasort($array, function ($a, $b) { 
    $price_a = array_values($a)[0]['price']; 
    $price_b = array_values($b)[0]['price']; 

    return $price_b - $price_a; 
}); 

注:グループが空である場合よりもエラーが発生します。

+1

はい、うまくいきました。どうもありがとうございます :-) –

関連する問題