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

PHP使用array_search比较两个相同数组输出结果不一致问题

问题原因

核心是PHP弱类型判断和array_search函数的返回值规则共同作用的结果:

  • array_search 匹配到目标元素时会返回该元素对应的数组下标,匹配失败才会返回布尔值false。你代码里第一个元素1在数组$a中的下标为0,PHP在做if条件判断时,会自动将整型0转换为布尔值false,因此触发了else分支输出No。
  • 其余元素的下标都是大于0的正整数,弱类型转换后为布尔值true,因此都输出Yes。

修复方案

将条件判断改为严格比较,明确区分返回值为0和false的情况即可,修改后的判断逻辑如下:

if (array_search($a2[$i], $a) !== false) {
    echo "Yes","<br>", $a2[$i];
}else{
    echo "No","<br>", $a2[$i];
}

!==是PHP的不全等运算符,会同时校验值和变量类型,只有当array_search真正返回布尔值false时才会进入else分支,符合预期判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 05:27:03