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

使用PHP查找数组中两数之和仍在原数组中的数对

修正后的PHP代码实现需求

原代码的核心问题是判断条件错误,且仅统计数量未输出实际符合条件的数对。以下是修正后的代码,可找出所有两数之和存在于原数组中的数对并输出:

$input = [1, 2, 5, 3];
$length = count($input) - 1;
$validPairs = [];

// 遍历所有不重复的数对(i < j 避免重复统计同一对)
for ($i = 0; $i <= $length; $i++) {
    for ($j = $i + 1; $j <= $length; $j++) {
        $sum = $input[$i] + $input[$j];
        // 检查两数之和是否存在于原数组中
        if (in_array($sum, $input)) {
            // 将数对按升序排列后存入,避免重复存储(比如[2,1]和[1,2]视为同一对)
            $pair = [$input[$i], $input[$j]];
            sort($pair);
            $validPairs[implode(',', $pair)] = $pair;
        }
    }
}

// 输出结果
echo "符合条件的数对:\n";
foreach ($validPairs as $pair) {
    echo $pair[0] . " 和 " . $pair[1] . "\n";
}

代码说明

  • 替换原错误判断条件:不再判断两数之和为0,改用in_array()检查和是否存在于原数组中
  • 新增$validPairs数组存储符合条件的数对,通过键名去重,避免同一数对被重复记录
  • 最终遍历输出有效数对,结果与示例一致:1 和 2、3 和 5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:25:41