【发布时间】:2021-06-22 16:17:00
【问题描述】:
我正在使用 PHP,我需要一个函数,它将二维数组中用户指定的子数组合并到一个新数组中,例如
$arr = [
"sub_1" => [ "a", "b" ],
"sub_2" => [ "c", "d" ],
"sub_3" => [ "e", "f" ],
"sub_a" => [ 1, 2, 3 ],
"sub_b" => [ 4, 5, 6 ],
"sub_c" => [ 7, 8, 9 ]
];
merge_subs( $arr, [ "sub_1", "sub_2", "sub_3" ] );
// should return: [ "a", "b", "c", "d", "e", "f" ]
merge_subs( $arr, [ "sub_a", "sub_b", "sub_c" ] );
// should return: [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
最有效的方法是什么?
编辑:
这是我尝试过的,但它不起作用,所以我显然做错了什么。
function merge_subs( $arr, $subs ){
$new = [];
foreach( $subs as $sub ){
array_push( $new, $arr[$sub] );
}
return array_merge( $new );
}
编辑 2:
我意识到我遗漏了省略号,现在我可以使用它了。无论如何,我想知道是否有更好的方法来实现这一点。
【问题讨论】:
-
你给我们看看你是怎么做的,然后我们看看能不能提高效率
-
您是否尝试过简单地浏览一下 PHP 手册?如果你找到了
array_merge(),你可能已经找到了! -
我已经编辑了我的问题以反映我的尝试。
-
如果您需要知道要处理哪个数组以及要合并的子数组的名称。这样做会更简单
$x = array_merge($arr['sub_1'], $arr['sub_2'], $arr['sub_3']); print_r($x);