Сортировать слияние рекурсивного массива - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть массив слияния двух с функцией php "merge_recursive" (оба пришли из SQL-запроса), у всех них есть общее поле [дата]. Можно ли отсортировать массив [новый] по полю [дата]?

       [new] => Array
            (
                [0] => Array
                    (
                        [user] => 8888
                        [user_image] => 0j1kjjzdv3ez07a0ee4lnmjb7_163.jpeg
                        [favorite_id] => 2
                        [date] => 1328579091
                        [images_id] => 4
                        [image] => 0j1kjjzdv3ez07a0ee4lnmjb7_163.jpeg
                        [text] => 
                        [favorite_user] => 8888
                        [favorite_user_image] => 0j1kjjzdv3ez07a0ee4lnmjb7_163.jpeg
                    )

                [1] => Array
                    (
                        [user] => 8888
                        [user_image] => 0j1kjjzdv3ez07a0ee4lnmjb7_163.jpeg
                        [favorite_id] => 5
                        [date] => 1328578954
                        [images_id] => 2
                        [image] => flw3utn9igiqh7dtt2o61ydf8_174.jpeg
                        [text] => 3
                        [favorite_user] => 6666
                        [favorite_user_image] => flw3utn9igiqh7dtt2o61ydf8_174.jpeg
                    )

                [2] => Array
                    (
                        [user] => 8888
                        [user_image] => 0j1kjjzdv3ez07a0ee4lnmjb7_163.jpeg
                        [image] => 0j1kjjzdv3ez07a0ee4lnmjb7_163.jpeg
                        [image_id] => 4
                        [date] => 1328579081
                        [text] => 
                        [image_date] => 1328577934
                        [comments] => 0
                    )

            )

Я хочу, чтобы aray был похож на (пример ниже)

[1] = Array
(
)
[0] = Array
(
)
[2] = Array
(
)

возможно ли это?

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Вы можете использовать array_multisort , который делает именно то, что вы хотите.

$dates = array();
foreach ($new as $key => $value) { // $new is your array
    $dates[$key] = $value['date'];
}
array_multisort($dates, SORT_ASC, $new);

Это легко расширяется с помощью нескольких критериев сортировки.

0 голосов
/ 07 февраля 2012

Вы можете попробовать что-то вроде этого:

http://us3.php.net/manual/en/function.uasort.php

function compareDate($a, $b) {
    if ($a["date"] == $b["date"]) {
        return 0;
    }
    return ($a["date"] < $b["date"]) ? -1 : 1;
}

uasort($input, compareDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...