You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP循环中生成增量命名变量并通过循环合并数组

解决PHP循环合并动态命名数组的问题

嗨,其实你有两种思路可以解决这个问题,一种是从根源上简化代码,另一种是针对已经生成的动态变量做循环合并,我给你详细说说:

方案一:直接在循环中收集数据(推荐)

你完全不需要先生成$czy1到$czy8这些单独的变量,咱们可以在遍历XML文件的过程中,直接把所有CDATA内容存入同一个数组,这样就省掉了后续合并的步骤,代码更简洁也更好维护:

<?php
$merge = []; // 初始化用来存所有数据的数组
for ($o = 1; $o < 9 ; $o++) { 
    $file = '/patch/to/file_'.$o.'.xml'; 
    $doc = new DOMDocument(); 
    $doc->load($file); 
    $destinations = $doc->getElementsByTagName("model"); 
    foreach ($destinations as $destination) { 
        foreach($destination->childNodes as $child) { 
            if ($child->nodeType == XML_CDATA_SECTION_NODE) { 
                $merge[] = $child->textContent; // 直接把内容添加到统一数组里
            } 
        } 
    } 
}
// 现在$merge就是所有XML里CDATA内容的合并结果啦

方案二:循环合并已生成的$czy1到$czy8变量

如果你因为某些原因必须保留这些动态命名的$czyX变量,也可以通过循环动态获取这些变量并合并:

<?php
// 先保留你原来生成$czy1到$czy8的代码...

$merge = [];
for ($o = 1; $o < 9; $o++) {
    $currentArray = ${'czy' . $o}; // 动态获取当前的$czyX数组
    $merge = array_merge($merge, $currentArray); // 逐个合并到$merge中
}

小提示

尽量优先选择方案一哦,因为动态变量(比如${'czy' . $o})的可读性相对差一些,后续维护代码的时候,直接用一个统一的数组会更清晰易懂。

内容的提问来源于stack exchange,提问作者pali112

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:40:08