Пожалуйста, посмотрите мой сценарий и определите проблему. Попытка разбить массив на два массива по четному или нечетному значению без встроенных функций в 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 )






Попробуйте использовать оператор по модулю % при проверке четных чисел. Он получает 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);
?>
Первый пример на php.net
array_filterвыглядит так, как вам нужно, если вы собираетесь использовать встроенные функции.