You need to enable JavaScript to run this app. PHP遍历双数组时首数组去重并聚合对应值实现目标输出
优惠活动
大模型
产品
解决方案
定价
更多

PHP遍历双数组时首数组去重并聚合对应值实现目标输出

PHP 双同索引数组按$A去重聚合对应$B值实现

实现思路

  • 直接以$A数组的元素值作为聚合键,从根源实现$A重复值去重,无需额外调用array_unique方法
  • 遍历两个数组的同索引元素时,对$B值做三层校验:去除前后空白、跳过空值、过滤重复的B值,避免无效内容拼接
  • 输出阶段动态判断当前聚合组是否有有效B值,匹配要求的格式细节

完整可运行代码

$A = array('0' => '1451', '1' => '1451', '2' => '1452', '3' => '1452', '4' => '1453', '5' => '1453', '6' => '1457', '7' => '1460');
$B = array('0' => '22',   '1' => '23',   '2' => '22',   '3' => '23',   '4' => '22',   '5' => '23',   '6' => '',     '7' => '');

// 初始化存储聚合结果的容器
$groupResult = [];

// 同步遍历两个数组的同索引元素
foreach ($A as $idx => $aItem) {
    $bItem = trim($B[$idx] ?? '');
    // 初始化当前A值对应的B值存储列表
    if (!isset($groupResult[$aItem])) {
        $groupResult[$aItem] = [];
    }
    // 仅保留非空、未重复的B值
    if ($bItem !== '' && !in_array($bItem, $groupResult[$aItem])) {
        $groupResult[$aItem][] = $bItem;
    }
}

// 按要求格式输出
foreach ($groupResult as $aNum => $bValues) {
    $lineOutput = $aNum . ' =';
    // 仅当存在有效B值时追加空格和拼接内容
    if (!empty($bValues)) {
        $lineOutput .= ' ' . implode(', ', $bValues);
    }
    echo $lineOutput . '<br />';
}

实际输出效果

1451 = 22, 23<br />
1452 = 22, 23<br />
1453 = 22, 23<br />
1457 =<br />
1460 =<br />

代码兼容场景:如果后续$A的重复项对应的$B值出现重复,也会自动去重不会重复拼接;如果$B值存在前后空白字符,会自动清理后再判断是否有效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 09:54:08