我有一个包含多组单词的数组,其中一些可能是重复的,我想用数字替换数组中的重复单词:duplicate,并保留一个原始单词。 因此,如果我有5个副本,我希望其中4个被重复替换并保留原始的
$my_array = (0=>'test', 1=>'test2',2=>'test3',3=>'test');
正如您在我的数组中看到的那样,数组键0和3具有相同的值,我想用word替换最后一个值'复制'
$my_array = (0=>'test', 1=>'test2',2=>'test3',3=>'duplicate');
我尝试了不同的方法但没有成功:(
答案 0 :(得分:1)
这是一种方法:
<?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);
答案 1 :(得分:0)
试试这个,只记住你访问过的值。
$visited = array();
foreach($my_array as $key=>$val) {
if(isset($visited[$val])) {
$my_array[$key] = 'duplicate';
} else {
$visited[$val] = true;
}
}