1

我一直在搜索 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");

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

4

2 回答 2

4

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

$merged = array_map(function () { return func_get_args(); }, $array1, $array2, $array3);
于 2012-07-03T13:58:30.460 回答
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;
}

那应该行得通。

于 2012-07-03T14:03:39.573 回答