繁体   English   中英

将array_merge_recursive与数字键一起使用

[英]Using array_merge_recursive with numeric keys

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

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

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

$merged = array_map(function () { return func_get_args(); }, $array1, $array2, $array3);
$merge_array = array();
for($i = 0; $i < count($array1); $i++) {
    $row = array();
    $row[] = $array1[$i];
    $row[] = $array2[$i];
    $row[] = $array3[$i];
    $merged_array[] = $row;
}

这应该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM