在PHP中将数组分成3个不同的数组

时间:2013-11-15 07:42:09

标签: php

我有一个这样的数组:

array(
    '1' => 'Item 1',
    '2' => 'Item 2',
    '3' => 'Item 3',
    '4' => 'Item 4',
    '5' => 'Item 5',
    '6' => 'Item 6',
    '7' => 'Item 7',
    '8' => 'Item 8',
    '9' => 'Item 9'
);

我想将它分成3个数组,其中键1,2,3分别进入$ array1,$ array2,$ array3然后键4,5,6然后7,8,9进入$ array1,$ array2,$ array3也是。

因此,最终输出将是:

$array1 = array(
    '1' => 'Item 1',
    '2' => 'Item 4',
    '3' => 'Item 7'
);

$array2 = array(
    '1' => 'Item 2',
    '2' => 'Item 5',
    '3' => 'Item 8'
);

$array3 = array(
    '1' => 'Item 3',
    '2' => 'Item 6',
    '3' => 'Item 9'
);

或者,如果他们的密钥被保留(并且在我的示例中不是每个数组中的1,2,3)那么这也无关紧要。无论哪种方式都没问题。

4 个答案:

答案 0 :(得分:2)

像......

$i=0;
foreach($array as $k=>$v) {
 ${"array".$i%3+1}[$k]=$v;
 $i++;
}

答案 1 :(得分:2)

foreach($arr as $key => $value) {
    $final_arr[$key % 3][] = $value;
}

答案 2 :(得分:1)

for($i = 0; $i < count($input); $i += 3) {
    ${"array".$i} = array_slice($input, 0 + $i, 3);
}

这将在每个第三个元素上将数组拆分为新数组。您还可以用变量替换3以拆分其他数字。

编辑:哦,我刚注意到,您可能想要抵消$ i以正确的顺序获取数组名称。现在它将是array3,array6,array9等

答案 3 :(得分:0)

   Try This

          $first_arr = array();
                $second_arr = array();
                $third_arr = array();
                $first = 0;
                $second = 1;
                $third = 2;    
                foreach($array as $value)
                {
                    if ($first++ % 3 == 0)
                    $first_arr[] = $value;
                    if ($second++ % 3 == 0)
                    $second_arr[] = $value;
                    if ($third++ % 3 == 0)
                    $third_arr[] = $value;
                }