替换数组中的重复单词(不删除)

时间:2014-09-13 17:25:55

标签: php

我有一个包含多组单词的数组,其中一些可能是重复的,我想用数字替换数组中的重复单词: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');

我尝试了不同的方法但没有成功:(

2 个答案:

答案 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;
    }
}