Илья Токарев

Тест не учитывает "Если количество единиц одинаково, то сортируем на основе десятичного представления." У меня прошел код вообще без этого условия. Почему не работает с usort - возвращает 1?

function sortByBinary ($collection)  {
    return fsort($collection, function ($x, $y) {
     $x1 = substr_count(decbin($x), "1");
     $y1 = substr_count(decbin($y), "1");
     if($x1 == $y1) {
         return $x - $y;
     }
     elseif ($x1 > $y1) {
         return 1;
     }
     else {
         return -1;
     }
    });

}

1 0

usort не возвращает новую коллекцию, эта функция изменяет переданную коллекию инплейс.

0

Похожие вопросы

Maxim Korobov 02 апреля 2019 →

Здравствуйте! Хотел спросить для лучшего понимания вопроса - почему в решении учителя столько условий? Напр...

Валентин Иванов 26 марта 2019 →

Что-то мое решение слишком короткое получилось. https://ru.hexlet.io/code_reviews/100027 Не понял, почему в...

Евгений Илюхин 19 сентября 2017 →

Добрый день! Сортировка по количеству единиц в двоичном, затем по десятичному виду. При проверке: а) даетс...

Михаил Чудинов 26 июля 2017 →

Написал, вручную при тестировании получаю результат соответствующий из readme и примерам в тестах. При нажа...

Юрий Быков 26 апреля 2017 →

Помнится, в одном из видео Кирилла по ментальному программированию, говорилось, что использование флага для...

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →