2014-02-26 125 views
1

我的數組:PHP排序assoc命令陣列

array(n) { 
[...], 
[100]=> 
    array(4) { 
    [0]=> 
    array(15) { 
     ["TIME_PAIR"]=> 
     string(11) "16:35" 
    } 
    [1]=> 
    array(15) { 
     ["TIME_PAIR"]=> 
     string(11) "11:25" 
    } 
    [2]=> 
    array(15) { 
     ["TIME_PAIR"]=> 
     string(11) "13:25" 
    } 
    [3]=> 
    array(15) { 
     ["TIME_PAIR"]=> 
     string(11) "15:00" 
    } 
    } 
[...] 
} 

我需要"TIME_PAIR"值在array(n)[100]數組進行排序。 Som array[100][0]應該在最後。如何做這樣的排序?香港專業教育學院嘗試使用array_multisort但它總是不適合我(

+2

您可能需要使用[usort(http://us1.php.net/usort) - HTTP://計算器。 COM /問題/ 2699086 /排序多維陣列逐值 –

+1

你想要的結果是什麼?我想每個子數組(即$ array [100])應該按「TIME_PAIR」排序,但是子排列的順序是怎樣的?你能顯示樣本輸入和期望的輸出嗎? – ziollek

+1

@wingsofovnia:嘗試下面的解決方案.. – Haroon

回答

1

嗨,你可以使用usort PHP函數工作進行排序下方的陣列是完整的代碼。

$arr = array(
      "100"=>array(
       array("TIME_PAIR"=>"16:35"), 
       array("TIME_PAIR"=>"11:25"), 
       array("TIME_PAIR"=>"13:25"), 
       array("TIME_PAIR"=>"15:00"), 
      ) 

      ); 

echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 

function cmp($a, $b) { 
    return $a['TIME_PAIR'] - $b['TIME_PAIR']; 
} 

$res = usort($arr[100],"cmp"); 

echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 

您將有以下結果。 。

Array 
(
[100] => Array 
    (
     [0] => Array 
      (
       [TIME_PAIR] => 11:25 
      ) 

     [1] => Array 
      (
       [TIME_PAIR] => 13:25 
      ) 

     [2] => Array 
      (
       [TIME_PAIR] => 15:00 
      ) 

     [3] => Array 
      (
       [TIME_PAIR] => 16:35 
      ) 

    ) 

) 

隨意問任何問題... :)