gpt4 book ai didi

php - 在数组中查找重复值,该数组创建一个新数组,键作为重复键,值作为重复项

转载 作者:行者123 更新时间:2023-12-04 04:47:43 24 4
gpt4 key购买 nike

我试图在我的数组中找到所有重复项,并创建一个新数组,该数组将键作为重复值键和值作为其重复项的键

例子

[1] => 10
[2] => 11
[3] => 12
[4] => 12
[5] => 12
[6] => 13
[7] => 13

在我应用重复检查后,我只需要
[4] => [3] // value of key 4 is dupe of key 3
[5] => [3] // value of key 5 is dupe of key 3
[7] => [6] // value of key 7 is dupe of key 6

这让我得到了所有重复的键,但我需要带有值的重复键作为重复的键
$arr_duplicates = array_keys(array_unique( array_diff_assoc( $array, array_unique( $array ) ) ));

谢谢

最佳答案

试试这个,以获得比其他解决方案潜在的速度提升。然而,将在大型数据集上使用更多内存。

<?php

$orig = array(
1 => 10,
2 => 11,
3 => 12,
4 => 12,
5 => 12,
6 => 13,
7 => 13
);

$seen = array();
$dupes = array();

foreach ($orig as $k => $v) {
if (isset($seen[$v])) {
$dupes[$k] = $seen[$v];
} else {
$seen[$v] = $k;
}
}
unset($seen);

var_dump($dupes);

关于php - 在数组中查找重复值,该数组创建一个新数组,键作为重复键,值作为重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com