一尘不染

按索引将数组分为两个数组,即偶数或奇数

php

我有这个数组:

$array = array(a, b, c, d, e, f, g);

我想根据索引是偶数还是奇数将其分为两个数组,如下所示:

$odd = array(a, c, e, g);

$even = array(b, d, f);

提前致谢!


阅读 206

收藏
2020-05-29

共1个答案

一尘不染

一种解决方案,使用匿名函数和array_walk

$odd = array();
$even = array();
$both = array(&$even, &$odd);
array_walk($array, function($v, $k) use ($both) { $both[$k % 2][] = $v; });

这样就可以将数组中的项一次分离出来,但是有点“聪明”。确实没有比经典的,更冗长的更好

$odd = array();
$even = array();
foreach ($array as $k => $v) {
    if ($k % 2 == 0) {
        $even[] = $v;
    }
    else {
        $odd[] = $v;
    }
}
2020-05-29