Илья Токарев

У меня какая-то странная проблема с usort - не сортирует, причем я могу вместо usort написать любую аброкадабру и ошибки нет. С fsort сразу заработало, проверил несколько раз - все правильно, после нескольких попыток заработало c usort само по себе, ничего не менял. Слишком сложно? Посмотрев решение автора, почувствовал себя дураком

function cmp2($x, $y, $i) {
    if($i == sizeof($x)) {
        return 0;
    }
    elseif($y > $x[$i]) {
        return -1;
    }
    elseif($y < $x[$i]) {
        return 1;
    }
    else return cmp2($x, $y, $i+=1);
}

function arrangeBiggestNumber($list) {
usort($list, function($x, $y) {
    if(strlen($x) > 1 && strlen($y) == 1) {
        return -cmp2(str_split($x), $y, 0);
    }
    elseif(strlen($x) == 1 && strlen($y) > 1) {
        return cmp2(str_split($y), $x, 0);
    }
    else {
        return strcmp($y,$x);
    }
});
return implode($list);
 }

0 2

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

Sergey Erofeev 01 ноября 2017 →

Например из чисел [3, 24, 4] мы можем составить такие: 3244, 3424, 2434, 2443, 4324, 4243, 4324. usort совс...

Иван Растяпин 15 августа 2017 →

Давно проходил курс по PHP. Но эту задачу как-то пропустил. Просматривать теорию не стал, и поэтому решал с...

Pavel Perminov 07 августа 2017 →

Я, прямо, в замешательстве Скринкаст (https://yadi.sk/i/J03V3NEC3LnWvK)

Валерий Симонов 17 апреля 2017 →

А почему у вас из двух чисел 2 и 202 первое оказывается больше (в ответе стоит на первом месте)? Ведь логич...

Yaroslav Detsyk 07 апреля 2017 →

О, сделал точно так же, как учитель. Правда пришлось напрячь голову.

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

Хекслет

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