2012-01-03 2 views
1

Я пытаюсь сортировать этот массив по дате, но массив объединяется и имеет два разных типа даты.Сортировка php-массива по значениям multipule

[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) 

, например, в (array2, date2) может быть раньше (Array1 , 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

ответ

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

+0

'[0] => У объекта' нет 'posted_date',' [1] => Object' не имеет 'date'. Интересно, хотите ли вы сортировать в этом случае, вы отбросили эту часть в своем вопросе. – hakre

+0

[0] => Объект не имеет опубликованной даты. У Array1 был «post_date», а Array2 - «дата». Они были объединены, поэтому у него есть разные ключевые имена для дат. Я попробовал выбрать 'date_date' AS 'date' из db, но zend не имел бы его или, скорее всего, мою ошибку. – tiggles