我有2个独立的数组:
Array
(
[0] => Header 1
[1] => Header 2
)
Array
(
[0] => Array
(
[0] => Content #1
[1] => Content #2
)
[1] => Array
(
[0] => Content #1.1
)
)
如何将这两个数组组合成多维,格式如下:
Array
(
[0] => Array
(
[Header 1] => Content #1
[Header 2] => Content #1.1
)
[1] => Array
(
[Header 1] => Content #2
)
)
目的是创建HTML表。我找到了一种从这里How to create a HTML Table from a PHP array?创建表的方法,但数组格式应该像最后一个。
答案 0 :(得分:2)
使用foreach
循环的直接方式......
$arr1 = ['Header 1', 'Header 2'];
$arr2 = [['Content #1', 'Content #2'],
[ 'Content #1.1']];
$result= [];
foreach ( $arr2 as $arr3 ){
$partial = [];
foreach ( $arr3 as $key=>$value ) {
$partial[$arr1[$key]] = $value;
}
$result[] = $partial;
}
print_r($result);
(请原谅不是非常有创造力的变量名称)
...给出
Array
(
[0] => Array
(
[Header 1] => Content #1
[Header 2] => Content #2
)
[1] => Array
(
[Header 1] => Content #1.1
)
)
如果您知道第二个数组的值始终与第一个数组的值相同,则可以简化,因为您可以在循环中使用array_combine()
。虽然你可以捏造这个......
$arr1 = ['Header 1', 'Header 2'];
$arr2 = [['Content #1', 'Content #2'],
[ 'Content #1.1']];
$result= [];
foreach ( $arr2 as $arr3 ){
$arr4 = array_slice($arr1,0,count($arr3));
$result[] = array_combine($arr4, $arr3);
}
print_r($result);
答案 1 :(得分:0)
我猜你应该使用" +"运营商,即
$newArray = $array1 +array2
答案 2 :(得分:0)
这是您的解决方案
<强>输入强>
$array1 = array('Header 1','Header 2');
$array2 = array(array('Content #1','Content #2'),array('Content #1.1'));
<强>解决方案强>
$new = array();
foreach($array2 as $key => $row){
for($i=1;$i<=count($row);$i++){
$new[$key]['Header '.$i] = $row[$i-1];
}
}
<强>输出强>
Array
(
[0] => Array
(
[Header 1] => Content #1
[Header 2] => Content #2
)
[1] => Array
(
[Header 1] => Content #1.1
)
)