举例如下
现有这个一个数组
(AAA,BBB,BBB,CCC,AAA,CCC,BBB,DDD)
要实现
程序自动找出所有的重复元素,并对重复元素编号后(就是简单的在值后面加2,3 1不用加)
实现处理之后数组变成
(AAA,BBB,BBB-
2,CCC,AAA-2,CCC-2,BBB-3,DDD)
请问这样的算法应该如何实现,谢谢~~
唠叼的算法:
$ar = array('AAA', 'BBB', 'BBB', 'CCC', 'AAA', 'CCC', 'BBB', 'DDD');
$dict
= array();
foreach($ar as $k=>$v) {
if($dict[$v])
$ar[$k] = $v. '_' . ($dict[$v]+1);
$dict[$v]++;
}
print_r($ar);
Array
(
[0] => AAA
[1] => BBB
[2] => BBB_2
[3]
=> CCC
[4] => AAA_2
[5] => CCC_2
[6]
=> BBB_3
[7] => DDD
)
本文永久链接: http://www.zzxj.net/blog/fxs_2008/archive/2010/03/17/122.html
发表于 @ 2010年03月17日 |评论(loading... )|收藏