这只是一个简单的脚本,用于将整数数组从奇数分割为偶数,但是当我尝试输出我所做的两个不同的数组时,屏幕上没有输出任何内容。以下是我的代码:
<?php
$ints = [1, 2, 3, 4];
function getEvens($evens){
$even_array = null;
$odd_array = null;
foreach ($evens as $value){
if ($value / 2 == 0) {
$even_array = array($value);
}
else {
$odd_array = array($value);
}
}
return $even_array;
return $odd_array;
}
echo getEvens($ints);
?>
答案 0 :(得分:3)
if ($value / 2 == 0) {
如果$ value为0, $value / 2
将只为0
0/2 = 0
1/2 = 0.5
2/2 = 1
etc
你的意思是
if ($value % 2 == 0) {
修改强>
$even_array = array($value);
总是replace
$ even_array带有指定的值,所以你只能得到最后的结果
答案 1 :(得分:1)
您只能有一个return
语句 - 当函数到达第一个return
时,第二个return
将永远不会被执行。并且数组上的echo产生错误,您需要使用print_r()或var_dump()。
此外,您使用不正确的运算符来确定某些内容是奇数还是偶数。使用modulus。
最后,您不断重新初始化数组,而不是为其添加值。试试这个:
$ints = [1, 2, 3, 4];
function getEvens($evens){
$even_array = array();
$odd_array = array();
foreach ($evens as $value){
if ($value % 2 == 0) {
$even_array[] = $value;
}
else {
$odd_array[] = $value;
}
}
return array('even' => $even_array, 'odd' => $odd_array);
}
var_dump(getEvens($ints));
最后,你的结果是:
Array
(
[even] => Array
(
[0] => 2
[1] => 4
)
[odd] => Array
(
[0] => 1
[1] => 3
)
)
答案 2 :(得分:1)
尝试如下。阅读代码中的注释
$ints = [1, 2, 3, 4];
function getEvens($evens){
$even_array = array(); //Declare arrays as array() instead of null
$odd_array = array();
foreach ($evens as $value){
if ($value % 2 == 0) { //Use modulo to detect if it is even or odd
$even_array[] = $value; // Use [] to add value to array
}
else {
$odd_array[] = $value;
}
}
//You can only return 1 element, So combine them in one array
return array(
'even' => $even_array;
'odd' => $odd_array
);
}
echo '<pre>';
print_r(getEvens($ints));
echo '</pre>';
答案 3 :(得分:0)
将运营商更改为%
...
$value =0 then only the result is 0
答案 4 :(得分:0)
你在找这个吗?
<?php
$ints = array(1,2,3,4);
function getEvens($evens){
$even_array = null;
$odd_array = null;
foreach ($evens as $value){
if ($value % 2 == 0)
{
$return_evn_array[] = array($value);
}
else
{
$return_odd_array[] = array($value);
}
}
return array('evn_array' => $return_evn_array, 'odd_array' =>$return_odd_array);
}
echo '<pre>';
print_r(getEvens($ints));
echo '</pre>';
?>