2012-01-03 85 views
1

我想按日期對數組進行排序,但數組合並且有兩種不同類型的日期。按乘積值排序php數組

[0] => Object 
     [Something] => hey 
     [date]=>2010-01-03 
[1] => Object 
     [something] => heyagain 
     [somethingelse] => heythere 
     [posted_date] => 2011-08-22 

我想這個數組按日期整個數組排序併發布日期,但在數組中順序出來爲:

Array1=>(date1,date2,date3) Array2=>(date1,date2,date3) 

例如,在(數組2,DATE2)可能是之前(數組1 ,date1),但它不會這樣排序。我希望看到

Output=>Array2(date1),Array2(date2),Array1(date1),Array2(date3),Array1(date2),Array1(date3 

我試圖array_multisort($merge, SORT_NUMERIC, $arg, 'posted_date', SORT_DESC, 'date', SORT_DESC)和其他幾個,但我不能得到它的工作。我希望這不會讓任何人困惑。

+0

我想看看'array_walk()'和'array_map()' – Minras 2012-01-03 18:08:47

回答

1

要使用array_multisort,您需要先創建多個陣列,例如,訪問你想要排序的屬性並將它們包裝到另一個數組中。

manual page舉例說明如何做到這一點或那個。然而字符串是行不通的:

array_multisort($merge, SORT_NUMERIC, $arg, 'posted_date', SORT_DESC, 'date', SORT_DESC); 

看得那麼清楚:Sort data of Php array by values of another array

+0

Multisort將如何喜歡他們的數組進行排序,但我的結果仍然是從Array1開始,然後到Array2。他們必須在同一個陣列,然後排序混合他們,但按日期排序。 – tiggles 2012-01-03 18:41:13

+0

'[0] => Object'沒有'posted_date','[1] => Object'沒有'date'。我想知道你是否想在這種情況下排序,你在你的問題中放棄了這部分。 – hakre 2012-01-03 18:49:32

+0

[0] =>對象沒有發佈日期。 Array1有'posted_date',而Array2有'date'。這些被合併,因此它具有不同的日期鍵名。我試圖從db中選擇'posting_date'AS'date',但是zend不會擁有它,或者很可能是我的錯誤。 – tiggles 2012-01-03 18:55:48