php 动态创建数组并合并

php create arrays dynamically and merge

我正在尝试在 foreach 循环中动态创建未知数量的数组,在末尾将它们全部合并到一个数组中,然后在 JSON Google 分析的格式。

到目前为止,我有以下代码在合并部分抛出错误:

        $p=1;
        foreach(...){
        ...
        $arr = 'arr'.$p;
        $name = $order->ProductGroupName;
        $name = str_replace("'", "", $name);
        $arr = array(
            "name"=>$name,
            "id"=>$order->ProductCode,
            "price"=>$order->RRP,
            "quantity"=>$order->Quantity
        );
            $p++;       
        }
        for ($q = 1; $q<$p; $q++){
            $arry = 'arr'.$q;
            $merge = array_merge($arry, $merge);
        };

请问如何动态创建数组并在最后合并它们? 我是 PHP 的新手,我已经尽力让它发挥作用。

我想我明白你想做什么。只需将 [] 动态附加到数组即可,无需合并:

foreach($something as $order) {
    $arr[] = array (
        "name"=>str_replace("'", "", $order->ProductGroupName),
        "id"=>$order->ProductCode,
        "price"=>$order->RRP,
        "quantity"=>$order->Quantity
    );
}

如果您出于任何原因想要使用字符串键,那么:

$p = 1;
foreach($something as $order) {
    $arr["SomeText$p"] = array (
        "name"=>str_replace("'", "", $order->ProductGroupName),
        "id"=>$order->ProductCode,
        "price"=>$order->RRP,
        "quantity"=>$order->Quantity
    );
    $p++;
}

就是这样。检查:

print_r($arr);

诸如 $arry = 'arr'.$q; 之类的变量变量(尽管未正确完成)之类的东西不应该使用。