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

PHP:array_intersect函数返回结果不符合预期问题咨询

问题原因及解决办法

你的代码里$array1中索引1对应的"Band"字符串前面,存在不可见的Unicode控制字符(比如零宽空格U+FEFF),虽然肉眼看起来和$array2里的"Band"完全一致,但二者实际是不同的字符串。

array_intersect()函数是基于值的严格相等匹配来计算交集的,两个字符串的二进制内容不一样,自然匹配失败,返回空数组。

验证方式

你可以用bin2hex()函数查看两个字符串的十六进制编码,就能看出差异:

echo bin2hex($array1[1]); // 输出会带额外前缀,比如 efbbbf42616e64
echo bin2hex($array2[1]); // 输出为 42616e64

解决办法

  1. 最直接的方式:手动删除$array1里"Band"前面的不可见字符,重新输入该字符串
  2. 用代码过滤不可见字符:
    • 针对性去除常见零宽字符:
      $array1[1] = trim($array1[1], "\u{FEFF}\u{200B}");
      
    • 正则替换所有不可见控制字符:
      $array1[1] = preg_replace('/[\x00-\x1F\x7F-\x9F]/u', '', $array1[1]);
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:50:40