Php 替换数组中的重复字(不删除)
我有一个数组,它有多组单词,其中一些可能是重复的,我想用word:duplicate替换数组中的重复单词,并保留一个原始单词。 因此,如果我有5个副本,我希望其中4个被替换为副本并保留原始副本Php 替换数组中的重复字(不删除),php,Php,我有一个数组,它有多组单词,其中一些可能是重复的,我想用word:duplicate替换数组中的重复单词,并保留一个原始单词。 因此,如果我有5个副本,我希望其中4个被替换为副本并保留原始副本 $my_array = (0=>'test', 1=>'test2',2=>'test3',3=>'test'); 正如您在我的数组中看到的,数组键0和3具有相同的值,我想用单词“duplicate”替换最后一个值 $my_array = (0=>'test', 1=>
$my_array = (0=>'test', 1=>'test2',2=>'test3',3=>'test');
正如您在我的数组中看到的,数组键0和3具有相同的值,我想用单词“duplicate”替换最后一个值
$my_array = (0=>'test', 1=>'test2',2=>'test3',3=>'duplicate');
我尝试了不同的方法,但没有成功:(试试这个,记住你访问过的价值观
$visited = array();
foreach($my_array as $key=>$val) {
if(isset($visited[$val])) {
$my_array[$key] = 'duplicate';
} else {
$visited[$val] = true;
}
}
这里有一种方法:
<?php
$my_array = array(0=>'a', 1=>'a',2=>'b',3=>'c');
print_r($my_array);
$my_array2 = array_unique($my_array);
foreach($my_array as $key => $value) {
if (!array_key_exists($key, $my_array2)) {
$my_array[$key] = 'duplicate';
}
}
print_r($my_array);
如果键不是数字且不是从0开始,则的复制不起作用。您更应该使用foreach。数组键不应在其中存储值。