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

PHP中如何从二维数组中保留每个重复元素的唯一实例?

PHP二维数组去重保留唯一实例

你的二维数组里存在重复的子数组,直接用array_unique()没法正确去重——因为这个函数默认会把数组元素转成字符串再比较,二维数组转字符串后都是Array,导致错误的去重结果。

下面给两种实用的解决办法:

方法1:序列化辅助去重

先把每个子数组序列化转成唯一字符串,用array_unique()去重后再转回来:

// 序列化每个子数组
$serializedItems = array_map('serialize', $myArray);
// 去重
$uniqueSerialized = array_unique($serializedItems);
// 反序列化回数组
$uniqueArray = array_map('unserialize', $uniqueSerialized);
// 可选:重新索引数组,去掉原有的键名
$uniqueArray = array_values($uniqueArray);

方法2:循环遍历按唯一标识去重

如果子数组有明确的唯一标识(比如id),可以直接遍历数组,只保留每个标识第一次出现的实例:

$uniqueArray = [];
foreach ($myArray as $item) {
    // 用id作为判断重复的依据,也可以改成name+id组合:$item['name'] . '_' . $item['id']
    $uniqueKey = $item['id'];
    if (!isset($uniqueArray[$uniqueKey])) {
        $uniqueArray[$uniqueKey] = $item;
    }
}
// 可选:重新索引数组
$uniqueArray = array_values($uniqueArray);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:42:10