根据键合并相同的数组索引,并建立一个新的数组
问题描述:
我想合并数组索引,如
011,021,031,012,022,032,013,023,033,014,024,034。根据键合并相同的数组索引,并建立一个新的数组
$temp = array();
foreach($samplearray as $key => $val){
foreach($val as $key1 => $val1){
//what should logic here
}
}
样本阵列
$samplearray = array ("AA" => array (0 => array ("created by" => "011",
"date" => "12-03-14",
"time" => "12.00 pm"
),
1 => array ("created by" => "012",
"date" => "12-03-14",
"time" => "12.00 pm"
),
2 => array ("created by" => "013",
"date" => "12-03-14",
"time" => "12.00 pm"
),
3 => array ("created by" => "014",
"date" => "12-03-14",
"time" => "12.00 pm"
)
),
"BB" => array (0 => array ("created by" => "021",
"date" => "12-03-14",
"time" => "12.00 pm"
),
1 => array ("created by" => "022",
"date" => "12-03-14",
"time" => "12.00 pm"
),
2 => array ("created by" => "023",
"date" => "12-03-14",
"time" => "12.00 pm"
),
3 => array ("created by" => "024",
"date" => "12-03-14",
"time" => "12.00 pm"
)
),
"CC" => array (0 => array ("created by" => "031",
"date" => "12-03-14",
"time" => "12.00 pm"
),
1 => array ("created by" => "032",
"date" => "12-03-14",
"time" => "12.00 pm"
),
2 => array ("created by" => "033",
"date" => "12-03-14",
"time" => "12.00 pm"
),
3 => array ("created by" => "034",
"date" => "12-03-14",
"time" => "12.00 pm"
)
)
);
需要的输出
$newArray = array (0 => array ("created by" => "011",
"date" => "12-03-14",
"time" => "12.00 pm"
),
1 => array ("created by" => "021",
"date" => "12-03-14",
"time" => "12.00 pm"
),
2 => array ("created by" => "031",
"date" => "12-03-14",
"time" => "12.00 pm"
),
3 => array ("created by" => "012",
"date" => "12-03-14",
"time" => "12.00 pm"
),
4 => array ("created by" => "022",
"date" => "12-03-14",
"time" => "12.00 pm"
),
5 => array ("created by" => "032",
"date" => "12-03-14",
"time" => "12.00 pm"
),
6 => array ("created by" => "013",
"date" => "12-03-14",
"time" => "12.00 pm"
),
7 => array ("created by" => "023",
"date" => "12-03-14",
"time" => "12.00 pm"
),
8 => array ("created by" => "033",
"date" => "12-03-14",
"time" => "12.00 pm"
),
9 => array ("created by" => "014",
"date" => "12-03-14",
"time" => "12.00 pm"
),
10 => array ("created by" => "024",
"date" => "12-03-14",
"time" => "12.00 pm"
),
11 => array ("created by" => "034",
"date" => "12-03-14",
"time" => "12.00 pm"
),
);
答
实际上其非常简单。提示已经在标题中。 array_merge()
:
$newArray = array();
foreach ($samplearray as $key => $batch) {
$newArray = array_merge($newArray, $batch);
}
要遵循特殊的格式,你可以每次直到$samplearray
用完转向他们。
例子:
$newArray = array();
while(true) {
foreach ($samplearray as $key => &$batch) {
$newArray[] = array_shift($batch); // shift each batch
}
if(empty($batch)) { // if it runs out, stop!
break;
}
}
答
试试这个代码
$temp = array();
foreach($samplearray as $key => $val){
foreach($val as $key1 => $val1){
$temp[] = $val1;
}
对不起它的输出错误与您的解决方案... – 2014-09-23 06:31:23
@PuzzledBoy哦没关系,i'l起草另一位在只是有点 – Ghost 2014-09-23 06:35:27
@ PuzzledBoy检查我的修订 – Ghost 2014-09-23 06:42:15