好的,php array中有很多重复检测和删除的例子,使用array_unique()等等,但是如果你想查找dups,修改它们,再次检查循环,直到所有dups现在都是唯一的呢?PHP:如何识别和更改数组中的重复值?
我认为它像使用array_filter()...所以作为一个更具体的例子,这里是会出来的sql语句是这样的:
SELECT id, list.comboname
FROM list
INNER JOIN (
SELECT comboname
FROM list
GROUP BY comboname
HAVING count(id) > 1
) dup ON list.comboname = dup.comboname
到重复的数组表:
Array (
[0] => 49
[1] => big.dup
[2] => 233
[3] => another.duplicate
[4] => 653
[5] => big.dup
[6] => 387
[7] => big.dup
[8] => 729
[9] => another.duplicate
[10] => 1022
[11] => big.dup
)
现在我想的是一些PHP删除字符,直到时间,这样他们是唯一[或如果需要末尾添加号码]
所以导致将是:
Array (
[0] => 49
[1] => big.dup
[2] => 233
[3] => another.duplicate
[4] => 653
[5] => big.du
[6] => 387
[7] => big.d
[8] => 729
[9] => another.duplicat
[10] => 1022
[11] => big.dup1
)
虽然保留原始值(即, big.dup和another.duplicate)...我已经浏览了几乎所有的PHP数组函数,试图想象一个策略......想法?
你为什么不MySQL中完成这个?我认为这会帮助你:http://stackoverflow.com/questions/7416545/renaming-the-duplicate-data-in-sql – dino
答:因为我想设置它自动执行重复删除而不更改和重新运行SQL .. B.我不想只标记它们,我想将它们更改为非重复,并将它们留下 – idea34