@MRcracker

Как вывести четные или не четные элементы массива?

Есть массив. Он принимает строку even или odd и в зависимости от данного значения выводит четные или не четные элементы массива. В чем я ошибся?

function () {
$num = 'even';
$arr = [1,2,3,4,5,6,7,8,9];
in_array($num, $arr) {
 	if($num == 'even') {
 		return $arr % 2 == 0;
 } else {
 	return $arr % 2 !== 0;
 }
 }
}
  • Вопрос задан
  • 1685 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
function odd($var)
{
    // является ли переданное число нечетным
    return $var & 1;
}

function even($var)
{
    // является ли переданное число четным
    return !($var & 1);
}

$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];

echo "Нечетные:\n";
print_r(array_filter($array1, "odd"));
echo "Четные:\n";
print_r(array_filter($array2, "even"));


Используя анонимную функцию:
$arr = [1,2,3,4,5,6,7,8,9];

$odd = array_filter($arr, function($x) { return $x & 1;});

echo "Нечетные:\n";
print_r($odd);

$even = array_filter($arr, function($x) { return !($x & 1);});

echo "Четные:\n";
print_r($even);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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