2013-02-27 84 views
0

嗨,我有一個數組是2個獨立陣列的組合產生相同的結果,以下是我的數組合並後:按日期PHP數組排序後合併

Array 
(
    [0] => Array 
     (
      [event_id] => 16 
      [user_id] => 3 
      [date_created] => 20130227095010 

     ) 

    [1] => Array 
     (
      [event_id] => 15 
      [user_id] => 2 
      [date_created] => 20130227101734 

     ) 

    [2] => Array 
     (
      [event_id] => 16 
      [user_id] => 2 
      [date_created] => 20130227094856 

     ) 

) 

從這裏開始我怎樣才能排序基礎上再次date_created desc或asc,而不使用以前的2個數組,我用來合併?

更新: 先前陣列結果

ARRAY1:

Array 
(
    [0] => Array 
     (
      [event_id] => 15 
      [user_id] => 2 
      [date_created] => 20130227101734 


     ) 

    [1] => Array 
     (
      [event_id] => 16 
      [user_id] => 2 
      [date_created] => 20130227094856 

     ) 

) 

陣列2:

Array 
(
    [0] => Array 
     (
      [event_id] => 16 
      [user_id] => 3 
      [date_created] => 20130227095010 

     ) 

) 

如何使用這些函數內循環,以提取DATE_CREATED每個上述陣列

usort($array,function($a, $b) { return $a['date_created'] - $b['date_created']; }); 
+0

array_map用於一個函數應用於陣列的每個元素,而不是分選的數組本身 – MatRt 2013-02-27 02:32:10

回答

1

您可以創建自己的排序函數回調並將其與usort方法一起使用。 需要重新使用您的前兩個陣列。

usort($yourMergedArray, yourCallBackSort); 

function yourCallBackSort($firstEntry, $secondEntry) 
{ 
    // Do some stuff to compare your values and return -1, 0 or 1 
    // depend if $firstEntry id <, = or > to $secondEntry 
} 
1

非常簡單的東西,如usort()

usort($array, 
     function($a, $b) { return $a['date_created'] - $b['date_created']; }); 
+0

的''的$ A' date_created'鍵和'$ B '應該比較。 – Matthew 2013-02-27 02:34:41

+0

@Matthew哎呀,我錯過了某種方式:) – alex 2013-02-27 02:34:59

+0

@alex有沒有使用之前的2個數組合並? – d3bug3r 2013-02-27 02:57:11

0

嘗試此,

$sort = array(); 
foreach($your_combined_array as $k=>$v) { 
    $sort['date_created'][$k] = $v['date_created']; 
} 

array_multisort($sort['date_created'], SORT_DESC, $your_combined_array); 


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