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

PHP如何一次循环遍历多个不同长度数组合并生成新数组

问题原因

  • 你当前以CollateralType数组为循环基准,它的长度只有2,所以循环最多执行2次,无法获取到长度为3的GuarantorName、GuarantorNumber数组中的第三个元素
  • 代码中重复定义了CollateralStatus键,后一次赋值会直接覆盖前一次的内容,属于笔误
  • 多数组长度不一致时,需要先取所有数组的最大长度作为循环次数基准,同时增加下标存在性判断避免报错

解决代码

// 计算所有待处理数组的最大长度,作为循环基准
$maxLength = max(
    count($request->CollateralType),
    count($request->CollateralStatus),
    count($request->GuarantorName),
    count($request->GuarantorNumber)
);

// 初始化目标数组
$targetArr = [];

// 单次循环完成所有数据组装
for ($i = 0; $i < $maxLength; $i++) {
    $targetArr[] = [
        'MaritalStatus' => $request->MaritalStatus,
        'CollateralType' => $request->CollateralType[$i] ?? null,
        'CollateralStatus' => $request->CollateralStatus[$i] ?? null,
        'GuarantorName' => $request->GuarantorName[$i] ?? null,
        'GuarantorNumber' => $request->GuarantorNumber[$i] ?? null
    ];
}

逻辑说明

用PHP7+的??运算符做简写判断,对应下标不存在时会默认赋值为null,你也可以根据业务需求替换为其他默认值,或者增加判断逻辑,过滤掉抵押物/担保人字段全为空的条目。最终生成的$targetArr会包含所有数组的全量元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:45:05