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

PHP比较不定数量数组 获取元素不与其他数组重复的数组

实现逻辑
  • 先全局统计所有数组的元素出现次数,出现次数等于1的元素意味着仅在某一个数组中存在
  • 遍历每个数组校验:只要数组内所有元素的全局出现次数均为1,说明该数组的所有元素都没有在其他数组中出现过,即为符合要求的数组
Laravel 集合实现代码

完全基于Laravel集合封装的方法实现,无需手动编写循环逻辑:

// 待比较的输入数组,数量不固定
$input = [
    [1 => 1072, 2 => 835, 3 => 797, 4 => 586, /* 其余元素 */],
    [1 => 111, 2 => 835, 3 => 797, 4 => 586, /* 其余元素 */],
    // 更多数组...
];

// 统计所有元素的全局出现次数
$elementCount = collect($input)->flatten()->countBy();

// 过滤符合要求的数组
$result = collect($input)
    ->filter(fn ($item) => collect($item)->every(fn ($val) => $elementCount[$val] === 1))
    ->toArray();
补充说明
  • 上述代码默认保留原数组的索引键,如果需要重置为连续索引,可以在filter()后追加->values()
  • 你给出的示例数组中所有数组都包含835、797等重复公共元素,因此示例输入的过滤结果会是空数组,只有当数组所有元素都是全局独有时才会被保留
  • 如果需要用原生PHP实现,可替换为array_count_values、array_merge、array_filter等内置函数组合实现,逻辑一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 23:42:03