Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用带有数字键的数组\合并\递归_Php_Arrays_Multidimensional Array_Array Merge - Fatal编程技术网

Php 使用带有数字键的数组\合并\递归

Php 使用带有数字键的数组\合并\递归,php,arrays,multidimensional-array,array-merge,Php,Arrays,Multidimensional Array,Array Merge,我一直在搜索SO,发现了一些解决方案,它们都像黑客一样绕过了数字键上的默认array\u merge\u recursive行为。例如,我读过一篇文章,你可以在开头加下划线,把数字改成字符串 无论如何,这是我的数据集和预期结果 array ( "Name1", "Name2", "Name3" ); array ( "Data1", "Data2", "Data3" ); array ( "Price1", "Price2", "Price3" ); 预期结果: array ( 1 =>

我一直在搜索SO,发现了一些解决方案,它们都像黑客一样绕过了数字键上的默认
array\u merge\u 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\u merge\u recursive通常是如何使用数字键操作的。。。这是我当前的合并结果

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

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

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

$merged = array_map(function () { return func_get_args(); }, $array1, $array2, $array3);
$merge_array=array();
对于($i=0;$i

那应该行。

我喜欢这样。所有其他方法都涉及创建自定义函数和多行代码。这正是我一直在寻找的解决方案,正如我所希望的那样。谢谢不过,这有点令人讨厌。。。而且它也不是递归的。
$merge_array = array();
for($i = 0; $i < count($array1); $i++) {
    $row = array();
    $row[] = $array1[$i];
    $row[] = $array2[$i];
    $row[] = $array3[$i];
    $merged_array[] = $row;
}