2012-11-20 84 views
1

好吧,我有一個這樣的數組:PHP排序內蒙古,內蒙古陣列

array { 
    [0] => array { 
       [0] => array { 
         ["Time"] => "01:00:00" 
         } 
       [1] => array { 
         ["Time"] => "00:00:00" 
         } 
    } 
    [1] => array { 
       [0] => array { 
         ["Time"] => "01:00:00" 
         } 
       [1] => array { 
         ["Time"] => "00:00:00" 
         } 
    } 
} 

現在我想要做的就是那種裏面的內陣列(一個與時間值)的時間值。只是爲了讓內部數組按時間值排序。我將如何做到這一點?

我確實安裝了PHP 5.3,如果這是有幫助的。

回答

0
function custom_map($array) { 
    usort($array, function($a, $b) { 
     return strtotime($a['Time'])-strtotime($b['Time']) > 0; 
    }); 
    return $array; 
} 

$new_array = array_map("custom_map", $array); 

http://se1.php.net/manual/en/function.usort.php

http://se1.php.net/manual/en/function.array-map.php

+0

外界傳說排序最陣列。我只想對包含Time值的數組進行排序。 (外部數組順序應該不受影響)。 – Will39

+0

對不起,我意識到這一點,並致力於更新,但你打敗了我。看看這個。 –

+0

警告:strtotime()期望參數1是字符串,給出的數組是 – Will39

1

試試這個:

$arr = array(array(array("Time" => "01:00:00"), array("Time" => "02:00:00"), array("Time" => "00:00:00")), 
      array(array("Time" => "02:00:00"), array("Time" => "01:00:00"), array("Time" => "00:00:00"))); 

$c = count($arr); 
for ($i = 0; $i < $c; $i++) { 
    sort($arr[$i]); 
} 

var_dump($arr); // outputs desired array 
2
foreach ($array as $key => &$part) 
{ 
    usort(&$part, function($a, $b) { 
     return strtotime($a['Time'])-strtotime($b['Time']) > 0; 
    }); 
} 
+0

&前$部分已棄用,因此我不能選擇它作爲最終答案,謝謝你的幫助! – Will39