📌  相关文章
📜  PHP |不使用循环从数组中分离奇数和偶数元素(1)

📅  最后修改于: 2023-12-03 14:45:19.910000             🧑  作者: Mango

PHP | 不使用循环从数组中分离奇数和偶数元素

在PHP中,通常使用循环来从数组中分离奇数和偶数元素。但是,有没有更简单、更高效的方法呢?我们可以借助PHP的内置函数来实现这一目标。

array_filter函数

PHP中的array_filter函数可以过滤掉数组中不满足特定条件的元素。我们可以使用该函数来过滤掉奇数或偶数。

$array = [1, 2, 3, 4, 5, 6];

// 过滤掉奇数
$even = array_filter($array, function($value) {
    return $value % 2 == 0;
});

// 过滤掉偶数
$odd = array_filter($array, function($value) {
    return $value % 2 == 1;
});

在上面的代码片段中,我们定义了一个数组 $array。然后,我们使用 array_filter 函数过滤掉奇数和偶数,分别将结果保存在 $even$odd 变量中。

array_reduce函数

除了 array_filter 函数外,我们还可以使用 array_reduce 函数来实现同样的目标。

$array = [1, 2, 3, 4, 5, 6];

// 过滤掉奇数
$even = array_reduce($array, function($carry, $value) {
    return ($value % 2 == 0) ? array_merge($carry, [$value]) : $carry;
}, []);

// 过滤掉偶数
$odd = array_reduce($array, function($carry, $value) {
    return ($value % 2 == 1) ? array_merge($carry, [$value]) : $carry;
}, []);

在上面的代码片段中,我们定义了一个数组 $array。然后,我们使用 array_reduce 函数过滤掉奇数和偶数,分别将结果保存在 $even$odd 变量中。

需要注意的是,array_reduce 函数的第三个参数必须传入一个空数组,用于保存过滤后的结果。

总结

使用 array_filter 函数和 array_reduce 函数,我们可以更简洁高效地从数组中分离奇数和偶数元素。同时,这种方法也可以用于分离其他条件的元素,只需改变函数体即可。