我一直在搜索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");
有适当的方法吗?各个方法的优点和缺点是什么,例如添加下划线来创建字符串键?
答案 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;
}
这应该有效。