Здравствуйте, форумчане. Недавно начал изучать PHP, и, понемножку, стараюсь закреплять информацию на практике. Попалось мне вот такое задание: "В данном трехзначном числе переставьте цифры так, чтобы новое число оказалось наибольшим из возможных" Вот, как я его реализовал: PHP: <?php $a = 563; $z_sotni = $a % 100; $sotni = ($a - $z_sotni) / 100; $z_desyatki = $z_sotni % 10; $desyatki = ($z_sotni - $z_desyatki) / 10; $odunuci = $z_desyatki; echo $sotni.$desyatki.$odunuci."</br>"; if ($sotni <= $desyatki && $desyatki <= $odunuci) { echo $odunuci.$desyatki.$sotni; } elseif ($desyatki <= $sotni && $sotni <= $odunuci) { echo $odunuci.$sotni.$desyatki; } elseif ($odunuci <= $sotni && $sotni <= $desyatki) { echo $desyatki.$sotni.$odunuci; } elseif ($odunuci <= $desyatki && $desyatki <= $sotni) { echo $sotni.$desyatki.$odunuci; } elseif ($desyatki >= $odunuci && $odunuci >= $sotni) { echo $desyatki.$odunuci.$sotni; } ?> Код, вроде, работает. Но меня интересует, можно ли как-то решить данное задание по-другому? То-есть, с использованием только условных операторов. Возможно, код програмы можно сделать поменьше? Буду благодарен за помощь.
PHP: $num = 123; $num = preg_split('//u', $num, null, PREG_SPLIT_NO_EMPTY); rsort($num); dd(implode('',$num));