PHP中如何批量合并指定数组元素?求实现方案
PHP数组批量合并:用单元素数组值追加到后续多元素数组
我来帮你搞定这个数组合并的问题,你的需求核心应该是把每个单元素数组的值作为后缀,批量追加到它后面的所有多元素数组中,直到遇到下一个单元素数组为止,对吧?下面是具体的实现思路和可直接运行的代码:
实现思路
- 先准备一个变量存储当前要追加的单元素值(初始为
null) - 遍历原数组集合中的每一个子数组:
- 如果是单元素数组,就更新这个变量的值
- 如果是多元素数组,就把当前存储的单元素值追加到该数组末尾,然后将处理后的数组存入结果集合
- 最后输出或使用处理后的结果数组
完整代码示例
// 你的原数组集合(整理成PHP数组格式) $originalArrays = [ ['uttt'], ['534', 'DT 8060', '6y45y'], ['639', 'DP 42', '88765'], ['1470', '95126F', 'yt44y5'], ['1473', '95406F', 'yyynb rt'], ['ytree'], ['3338', 'DI 113 ШК', 'rdde'], ['1476', '96010', 'ouuhh'], ['nnggg'], ['2169', 'DT 88263-2', 'rhrd'], ['2657', 'DP 10-1', 'klii'], ['ergerg'], ['544', '96205', 'njnj sgsg'], ]; $processedArrays = []; $currentSuffix = null; foreach ($originalArrays as $arr) { // 判断当前子数组是否为单元素数组 if (count($arr) === 1) { // 取出单元素的值,更新当前后缀 $currentSuffix = reset($arr); } else { // 确保有可用的后缀值时才追加 if ($currentSuffix !== null) { $arr[] = $currentSuffix; } // 将处理后的数组加入结果集合 $processedArrays[] = $arr; } } // 打印处理后的结果(测试用) print_r($processedArrays);
代码说明
reset($arr)用来安全取出单元素数组的唯一值,避免直接用索引$arr[0]可能出现的键名问题- 加入了
$currentSuffix !== null的判断,防止原数组第一个元素就是多元素数组时出现错误追加 - 处理后的数组会完全符合你给出的目标结构:每个多元素数组末尾都追加了最近的单元素数组的值
你可以直接把这段代码复制到你的PHP环境中测试,要是有特殊的数组结构调整,比如单元素数组的键名不是0,只需要稍微修改取值逻辑即可~
内容的提问来源于stack exchange,提问作者Vadim
相关产品推荐
相关产品推荐

