PHP将const数组合并为新的const数组,但不嵌套

问题描述 投票:0回答:2

假设我有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;

但是这只剩下AD的内容。

我也尝试过

const D = [A, B, C];

但是,正如所料,这导致了一个数组[["a", "aa", "aaa"], ["b", "bb"], ["c"]]的数组,该数组不是我要找的东西。

php arrays merge const
2个回答
0
投票

自PHP 7.4(spread operator for arrays)起,您可以使用initial RFC(也称为拆包):

const D = [...A, ...B, ...C];

演示:https://3v4l.org/HOpYH

我认为以前的版本没有其他方法可以做到这一点。


0
投票

对于7.4之前的PHP版本,您可以使用自己的自定义函数。

这应该足够。

function const_array_merge(...$arrays) {
    $merged = [];
    foreach($arrays as $array) {
        $merged = array_merge($merged, array_values($array));
    }
    return $merged;
}
© www.soinside.com 2019 - 2024. All rights reserved.