假设我有3个const
数组:
const A = ["a", "aa", "aaa"];
const B = ["b", "bb"];
const C = ["c"];
我现在想将它们合并/合并到另一个const D
数组中而不嵌套它们。我该怎么办?
[基本上,我正在寻找类似array_merge()
的东西,但是我想寻找常量,因为众所周知,不能将表达式分配给常量。
我正在寻找的结果是
const D = ["a", "aa", "aaa", "b", "bb", "c"];
这是什么
const D = array_merge(A, B, C);
将为我提供,if表达式允许使用常量。
我已经尝试过
const D = A + B + C;
但是这只剩下A
中D
的内容。
我也尝试过
const D = [A, B, C];
但是,正如所料,这导致了一个数组[["a", "aa", "aaa"], ["b", "bb"], ["c"]]
的数组,该数组不是我要找的东西。
自PHP 7.4(spread operator for arrays)起,您可以使用initial RFC(也称为拆包):
const D = [...A, ...B, ...C];
我认为以前的版本没有其他方法可以做到这一点。
对于7.4之前的PHP版本,您可以使用自己的自定义函数。
这应该足够。
function const_array_merge(...$arrays) {
$merged = [];
foreach($arrays as $array) {
$merged = array_merge($merged, array_values($array));
}
return $merged;
}