PHP - Как отсортировать многомерный массив по ключу? - PullRequest
0 голосов
/ 29 мая 2019

Мне нужно отсортировать многомерный массив по ключу, и мне нужно несколько рекомендаций, как это сделать.

Я пытался использовать ksort() и другие встроенные функции php, но ни одна из них мне не помогла.

Это мой массив, который я хочу отсортировать по ключу:

Array
(
[0] => Array
    (
        [20190529] => Array
            (
                [30] => Array
                    (
                        [17] => Array
                            (
                                [3846] => 0
                            )

                    )

            )

    )

[1] => Array
    (
        [20190516] => Array
            (
                [31] => Array
                    (
                        [17] => Array
                            (
                                [512] => 0
                            )

                    )

            )

    )

)

В этом случае ключи 20190529 и 20190516

Ответы [ 2 ]

3 голосов
/ 29 мая 2019

Я изменил свой массив следующим образом:

Array
(
[0] => Array
    (
        [DATE] => 20190503
        [DEAL] => 30
        [IBLOCK] => 18
        [AMOUNT] => 2500
        [PAYED] => 0
    )

[1] => Array
    (
        [DATE] => 20190516
        [DEAL] => 31
        [IBLOCK] => 17
        [AMOUNT] => 512
        [PAYED] => 0
    )
)

, затем я использовал usort():

function cmp($a, $b) {
    return $a['DATE'] - $b['DATE'];
}

usort($mydata, "cmp");

И это сработало для меня :), но теперь я должен изменить своймассив снова, чтобы вернуть первый взгляд.

2 голосов
/ 29 мая 2019

Рабочая демонстрация .

Вы можете использовать array_multisort для удовлетворения ваших требований.

$keys = [];
foreach($arr as $k => $item){
    $keys[] = key($item);
}
array_multisort($keys, SORT_NATURAL, $arr);

array_multisort -Сортировать множественные или многомерные массивы

SORT_NATURAL - сравнивать элементы в виде строк, используя «естественное упорядочение», например natsort () .

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