Доброго времени суток уважаемые форумчане! Попытался отобразить только нечётные числа из массива, вроде вышло. Теперь пытаюсь ниже отобразить их-же, но в обратном порядке, не получается. Подскажите как сделать? PHP: <?php function fun(...$a) { foreach($a as $b){ if($b % 2 != 0) { echo $b. " "; } } } fun(0,1,8,3,4,7,6,7,8,9,8,5,6,4); ?>
еще можно через array_filter сделать PHP: array_filter($array, function($item) { return $item % 2 != 0; });
Было бы чем думать ) Вот в таком виде всё сработало: PHP: <?php $array = [0,1,2,3,4,5,6,7,8,9]; echo "Нечетные :\n"; print_r(array_filter($array, function($item) { return $item % 2 != 0; })); ?> А как его заставить отображать в обратном порядке, отзеркалить?
Вроде заставил: PHP: <?php $array = [0,1,2,3,4,5,6,7,8,9]; echo "Нечетные :\n <br>"; print_r(array_filter($array, function($item) { return $item % 2 != 0; })); $reversed = array_reverse($array); echo "<br> В обратном порядке :\n <br>"; print_r(array_filter($reversed, function($item) { return $item % 2 != 0; })); ?> Теперь отображает нечётные числа из массива по порядку и в обратном порядке, но громоздко получилось. Может подскажете как сделать компактнее? --- Добавлено --- Вроде заставил: PHP: <?php $array = [0,1,2,3,4,5,6,7,8,9]; echo "Нечетные :\n <br>"; print_r(array_filter($array, function($item) { return $item % 2 != 0; })); $reversed = array_reverse($array); echo "<br> В обратном порядке :\n <br>"; print_r(array_filter($reversed, function($item) { return $item % 2 != 0; })); ?> Теперь отображает нечётные числа из массива по порядку и в обратном порядке, но громоздко получилось. Может подскажете как сделать компактнее?
Зачем второй раз фильтр применять то? Просто один раз получили массив, если нужно переверните его и все
Как вариант Код (Text): function odd($var) { return $var & 1; } $arr = [0,1,2,3,4,5,6,7,8,9]; echo "Нечетные:\n"; print_r(array_filter($arr, "odd")); echo "В обратном порядке:\n"; print_r(array_reverse(array_filter($arr, "odd")));