Php 如何显示删除的数组\唯一行?
假设我有一个数组:Php 如何显示删除的数组\唯一行?,php,arrays,Php,Arrays,假设我有一个数组: Array => ( 0 => 'test', 1 => 'test', 2 => 'test2', 3 => 'test3' ) 如果我使用array_unique$array和var_,则在$array显示为保留键时转储它: Array => ( 0 => 'test', 2 => 'test2', 3 => 'test3' ) 但是现在我的1=>'test'
Array => (
0 => 'test',
1 => 'test',
2 => 'test2',
3 => 'test3'
)
如果我使用array_unique$array和var_,则在$array显示为保留键时转储它:
Array => (
0 => 'test',
2 => 'test2',
3 => 'test3'
)
但是现在我的1=>'test'行丢失了,我不能在说这些值是重复的场景中显示它
我知道我可以对单级阵列执行类似的操作:
function showArrayDupes($array)
{
$dupes = [];
foreach ($array as $key => $item)
{
if (array_count_values($array)[$item] > 1) {
$dupes[$key] = $item;
}
}
return $dupes;
}
但这将显示如下数组:
Array => (
0 => 'test',
1 => 'test'
)
我可以在$dups上使用array_unique,但这将过滤掉第二次,而不是第一次
PHP中是否有一个我不知道的本机函数,可以将数组中的行复制并存储到数组中?您正在寻找:
存储两个副本还是只存储一个?@ChukwuemekaInya什么意思我不知道有任何本机函数可以帮助您实现您想要实现的目标,但有几个函数可以帮助您保存副本。您想保存两个副本还是只保存其中一个副本?注释不用于扩展讨论;这段对话已经结束。
$vals = ['test', 'test', 'test2', 'test3'];
$uniq = array_unique($vals);
$removed = array_diff_key($vals, $uniq);
echo 'Removed: ';
print_r($removed);