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

PHP数组去重异常:使用array_unique仍出现重复结果求助

数组去重后重复输出的问题排查

嘿,我来帮你捋捋这个问题!你遇到的两次相同数组输出,根本不是array_unique()的问题,核心原因是你的这段代码被执行了两次。

先看你贴的代码:

$input = explode(' ', $term_single->name); 
$result = array_unique($input); 
print_r($result); 

以及实际输出:

Array ( [0] => QA ) 
Array ( [0] => QA )

为什么会出现这种情况?

  • 首先,$term_single->name的值看起来就是"QA",按空格分割后数组只有一个元素["QA"],array_unique()处理后自然还是这个数组。但你看到两次输出,说明这段print_r代码被触发了两次。
  • 常见的触发场景包括:
    • 这段代码被放在了循环(比如WordPress的术语循环)里,循环跑了两次,且两次处理的是同一个term对象
    • 你在代码里不小心复制了两遍这段逻辑
    • 对应的框架钩子(如果是在CMS里)被重复触发了两次

怎么验证和解决?

  • 先加个调试标记,确认代码执行次数:
    echo "代码执行了一次<br>";
    $input = explode(' ', $term_single->name); 
    $result = array_unique($input); 
    print_r($result); 
    
    如果看到两次“代码执行了一次”,那就实锤是代码被执行两次了。
  • 检查代码上下文:看看这段代码是不是在foreach循环里?或者是不是绑定了会触发多次的事件/钩子?
  • 可以打印$term_single的完整信息,确认是不是处理了同一个对象:
    var_dump($term_single);
    
    如果输出两个相同的term对象,那就是遍历逻辑的问题,需要调整循环条件或者范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:19:32