只是好奇是否有人知道如何合并所有其他子数组,
又名
$tmp = array();
$tmp[0] = array(false);
$tmp[1] = array(false);
$tmp[2] = array(false);
$tmp[3] = array(false);
$tmp[4] = array(false);
$tmp[5] = array(false);
或.... 0 + 1 2 + 3 4 + 5
我觉得这样的事情?
$i=0; $new=array();
foreach($tmp as $k=>$v) {
$tmp[$k] = $v;
if($i=$k-1) {
$new[] = $tmp[$i] + $tmp[$i-1]; /* or something ridiculous like that */
}
$i++;
}
答案 0 :(得分:2)
$new = array();
for ($i = 0, $cnt = count($tmp); $i < $cnt; $i += 2) {
$new[] = $tmp[$i] + $tmp[$i + 1];
}
答案 1 :(得分:1)
使用array_chunk
和array_merge
,您可以提出一个相当简单的解决方案
<?php
$result = array_chunk($tmp, 2);
foreach ($result as &$chunk)
{
$chunk = array_merge($chunk[0], $chunk[1]);
}
答案 2 :(得分:0)
这假设数组包含偶数个条目。如果不是这种情况,或者您要合并0 + 1,1 + 2,2 + 3,请将$i
上的增量更改为1,并将$j
的分配更改为$j = count( $tmp) - 1
$tmp = array();
$tmp[0] = array(false);
$tmp[1] = array(false);
$tmp[2] = array(true);
$tmp[3] = array(true);
$new = array();
for( $i = 0, $j = count( $tmp); $i < $j; $i += 2)
{
$new[] = array_merge( $tmp[$i], $tmp[$i+1]);
}
<强>输出强>
array(2) {
[0]=>
array(2) {
[0]=>
bool(false)
[1]=>
bool(false)
}
[1]=>
array(2) {
[0]=>
bool(true)
[1]=>
bool(true)
}
}