为什么我的函数给我一个输出,其中数组输出为 array(2)



>im 试图对偶数和奇数进行排序,而 im 正在处理一个脚本,该脚本采用一个数组并将其拆分并制作两个具有偶数和奇数的单独数组。 但是,我的输出使数组在括号中打印"2"。 只是想知道为什么会发生这种情况以及如何让它停止? 可能很简单。

<?php
$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);
}
echo '<pre>';
var_dump(getEvens($ints));
?>

我假设你在谈论这个输出:

array(2) {
  ["even"]=>
  array(2) {
    [0]=>
    int(2)
    [1]=>
    int(4)
  }
  ["odd"]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    int(3)
  }
}

你关心的是它说array(2)的地方.这是var_dump()工作方式的一部分 - 它只是告诉你每个数组中有多少个元素。如果使用 var_dump() ,您将始终获得该输出。

如果您不想array(2),请使用 print_r() 而不是 var_dump() 。它会给你这个:

Array
(
    [even] => Array
        (
            [0] => 2
            [1] => 4
        )
    [odd] => Array
        (
            [0] => 1
            [1] => 3
        )
)

是因为你在 vardump 上?

var_dump(getEvens($ints));

请改用print_r。

print_r(getEvens($ints));

最新更新