如何根据特定key高效对PHP多维数组进行去重?

DDD
发布: 2024-11-25 13:13:15
原创
366 人浏览过

How to Efficiently Deduplicate a PHP Multi-Dimensional Array Based on a Specific Key?

PHP 多维数组:根据特定值去重

问题:

给定一个多维数组,如何有效地删除包含特定值的重复值的子数组键?

问题陈述:

考虑以下多维数组:

Array
(
[0] => Array
    (
        [0] => dave
        [1] => jones
        [2] => [email protected]
    )

[1] => Array
    (
        [0] => john
        [1] => jones
        [2] => [email protected]

    )

[2] => Array
    (
        [0] => bruce
        [1] => finkle
        [2] => [email protected]
    )
)
登录后复制

任务是删除其中的任何子数组电子邮件地址(索引 2)出现多次。在此示例中,这将导致删除第一个或第三个子数组。

解决方案:

一个简单的解决方案涉及使用数组唯一性来消除重复的电子邮件地址:

$newArr = array();
foreach ($array as $val) {
    $newArr[$val[2]] = $val;    
}
$array = array_values($newArr);
登录后复制

该解决方案利用了 PHP 中数组键是唯一的这一事实。通过使用电子邮件地址作为数组键,可以确保仅最后一次出现的特定电子邮件地址保留在结果数组中。

通过在最后使用 array_values(),我们将数组索引重置为

注意:

  1. 解决方案所呈现的内容优先考虑最后一次出现的电子邮件地址。如果您希望优先考虑第一次出现的情况,请在使用 array_reverse() 迭代数组之前反转数组的顺序。
  2. 结果数组中的索引可能会重新排列。如果您不依赖特定索引,这不是主要问题。

以上是如何根据特定key高效对PHP多维数组进行去重?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板