Array_merge和array_merge_recursive未按需要工作,创建更多索引而不是将数组推到一起并保留索引号。参阅下面的输入/期望的输出:合并数组中的数组,保留数字索引
Array (
[0] => array(
[0] => "string1",
[1] => "string2",
[2] => "string3"
),
[1] => array(
[0] => "string4",
[1] => "string5",
[2] => "string6"
),
[2] => array(
[0] => "string7",
[1] => "string8",
[2] => "string9"
)
)
所需的输出:
Array (
[0] => array("string1","string4","string7"),
[1] => array("string2","string5","string8"),
[2] => array("string3","string6","string9")
)
编辑:
也许不是最好的例子;我想获得相同的结果,但每个嵌套数组中的键数不相等。请参阅下面的一个更好的例子:
<?php
$array = Array (
[0] => array(
[0] => "string1",
[1] => "string2",
[2] => "string3"
),
[1] => array(
[0] => "string4",
[1] => "string5",
[2] => "string6"
),
[2] => array(
[0] => "string7",
[1] => "string8",
[2] => "string9"
),
[3] => array(
[0] => "string10",
[1] => "string11",
[2] => "string12"
)
);
$output=array();
for($0=0;$j<count($array[0]);$j++){
$output[$j] = array();
}
for($i=0;$i<count($array);$i++){
for($0=0;$j<count($array[0]);$j++){
$output[$j] = array_push($output[$j],$column_values[$i][$j]);
}
}
?>
但是当我这样做,我得到键的正确数目我的$输出数组,但都包含一个布尔(假)。任何帮助?
这是所需的输出:
Array (
[0] => array("string1","string4","string7","string10"),
[1] => array("string2","string5","string8","string11"),
[2] => array("string3","string6","string9","string12")
)
我不认为合并是这里反正正确的方法。你想重新构造整个数组,所以迭代元素并创建一个新数组。 –