2017-02-28 12 views
1

私はこの多次元配列を持っていますが、それぞれの配列を 'fecha'(2017-02-20、次に2017-02-21、次に2017-02-22、そして最後に2017 -02-23)。私は多くの答えを読んだことがありますが、それらは二次元配列でしか動作しません。私はunsortとarray_multisortを試していますが、ksort bueであっても望みの結果を得ることはできませんでした。キー配列多次元配列

Array 
    (
     [0.10] => Array 
      (
       [0] => Array 
        (
         [fecha] => 2017-02-21 
         [tarifa] => 743.80 
         [percent] => 0.10 
        ) 

       [1] => Array 
        (
         [fecha] => 2017-02-22 
         [tarifa] => 743.80 
         [percent] => 0.10 
        ) 

       [2] => Array 
        (
         [fecha] => 2017-02-20 
         [tarifa] => 743.80 
         [percent] => 0 
        ) 

       [3] => Array 
        (
         [fecha] => 2017-02-23 
         [tarifa] => 743.80 
         [percent] => 0 
        ) 

      ) 

     [0.15] => Array 
      (
       [0] => Array 
        (
         [fecha] => 2017-02-21 
         [tarifa] => 743.80 
         [percent] => 0.15 
        ) 

       [1] => Array 
        (
         [fecha] => 2017-02-22 
         [tarifa] => 743.80 
         [percent] => 0.15 
        ) 

       [2] => Array 
        (
         [fecha] => 2017-02-20 
         [tarifa] => 743.80 
         [percent] => 0 
        ) 

       [3] => Array 
        (
         [fecha] => 2017-02-23 
         [tarifa] => 743.80 
         [percent] => 0 
        ) 

      ) 

    ) 

答えて

2

日付で注文するstrtotimeusortを使用することができます。日付別

ASC順(fecha):日付ごと

foreach ($yourArray as $key => $subarray) { 
    usort($subarray, function($a, $b) { 
      return strtotime($a['fecha']) - strtotime($b['fecha']); 
     }); 
    $yourArray[$key] = $subarray; 
} 

print_r($yourArray); 

DESC順(fecha):

foreach ($yourArray as $key => $subarray) { 
    usort($subarray, function($a, $b) { 
      return strtotime($b['fecha']) - strtotime($a['fecha']); 
     }); 
    $yourArray[$key] = $subarray; 
} 

print_r($yourArray); 
1

試してみてください。

foreach ($yourArray as $key => &$subarray) { 
     usort($subarray, function($a, $b) { 
      return $a['fecha'] <= $b['fecha']; 
     }); 
    } 
    print_r($yourArray); //now it's sorted