Второй массив не отсортирован, как указано в array_multisort php

У меня есть два массива, и я хочу отсортировать первый массив в порядке возрастания, где я хочу отсортировать второй массив в порядке убывания в PHP. Так что я использовал array_multisort() функция. Первый массив отсортирован, как и ожидалось, но второй массив не отсортирован, как я хочу.

Ниже приведен код.

<?php
        $array1 = array("ninja","pirate","assasin","superhero");
        $array2 = array("elephant","panda","eagle","snake");
        echo "<pre>";
        echo "Array 1.) <br />";
        print_r($array1);
        echo "<hr />Array 2.) <br />";
        print_r($array2);
        array_multisort($array1,SORT_ASC,$array2,SORT_DESC);
        echo "<hr/>New Sorted Array 1.) <br />";
        print_r($array1);
        echo "<hr />";
        echo "New Sorted Array 2.) <br />";
        print_r($array2);
        echo "</pre>";
    ?>

Я новичок в PHP. Пожалуйста, прокомментируйте ниже для любого запроса.

2 ответа

Я не думаю, что вы понимаете, как работает array_multisort. Если вы проверите первый пример в руководстве, он перегруппирует второй массив в зависимости от того, как был отсортирован первый.

Если вы хотите отсортировать их независимо, используйте sort и rsort, например так:

sort($array1);
rsort($array2);

Будь проще...

array_multisort($array1, SORT_ASC, SORT_STRING);
array_multisort($array2, SORT_DESC, SORT_STRING);
Другие вопросы по тегам