2012-01-03 82 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