将array_merge_recursive与数字键一起使用

时间:2012-07-03 13:55:11

标签: php arrays multidimensional-array array-merge

我一直在搜索SO并遇到一些解决方案,这些解决方案都让我们感觉自己很难解决数字键上的默认array_merge_recursive行为。例如,我读过您可以在开头添加下划线,将数字更改为字符串。

无论如何,这是我的数据集和预期结果......

array ( "Name1", "Name2", "Name3" );
array ( "Data1", "Data2", "Data3" );
array ( "Price1", "Price2", "Price3" );

预期结果:

array ( 1 => array ( "Name1", "Data1", "Price1" ), 2 => array ( "Name2", "Data2", "Price2" ), 3 => array ( "Name3", "Data3", "Price3" );

我确定你知道array_merge_recursive通常如何使用数字键操作......这是我当前的合并结果。

array ( "Name1", "Name2", "Name3", "Data1", "Data2", "Data3", "Price1", "Price2", "Price3");

有适当的方法吗?各个方法的优点和缺点是什么,例如添加下划线来创建字符串键?

2 个答案:

答案 0 :(得分:2)

一个简单的解决方法是完全不同的方法,例如:

$merged = array_map(function () { return func_get_args(); }, $array1, $array2, $array3);

答案 1 :(得分:0)

$merge_array = array();
for($i = 0; $i < count($array1); $i++) {
    $row = array();
    $row[] = $array1[$i];
    $row[] = $array2[$i];
    $row[] = $array3[$i];
    $merged_array[] = $row;
}

这应该有效。