Разделите массив на два массива, один с четными числами, а другой с нечетными числами

Пожалуйста, посмотрите мой сценарий и определите проблему. Попытка разбить массив на два массива по четному или нечетному значению без встроенных функций в PHP

<?php
$array = array(1,2,3,4,5,6);
$length = count($array);
$even = array();
for($i=0; $i < $length; $i++){
  if ($array[$i]/2 == 0){
     $even[] = $array[$i];
  }
  else{
     $odd[] = $array[$i];
  }
}
print_r($even);
echo "<br/>";
print_r($odd);
?>

current output
Array ( )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

Первый пример на php.net array_filter выглядит так, как вам нужно, если вы собираетесь использовать встроенные функции.

Aaron W. 06.04.2022 04:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
1
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте использовать оператор по модулю % при проверке четных чисел. Он получает remainder, когда вы делите свое значение на 2.

if ($array[$i] % 2 == 0)

Ваш текущий код divides ваше значение на 2 затем получает quotient, поэтому он не равен 0. 2/2 = 14/2 = 2 и так далее...

Надеюсь это поможет.

Ответ принят как подходящий

ваша ошибка заключается в том, если вы хотите проверить, является ли число нечетным или четным, вы должны использовать модуль%. Итак, ваш код становится таким

<?PHP $array = array(1,2,3,4,5,6);
$length = count($array);
$even = array();
for($i=0; $i < $length; $i++){
  if ($array[$i]%2 == 0){
$even[] = $array[$i];
}
else{
  $odd[] = $array[$i];
}
}
print_r($even);
echo "<br/>";
print_r($odd);
?>

Другие вопросы по теме