找出数组内所有的重复元素并对重复元素加序号进行处理 收藏
2010年03月17日


举例如下

现有这个一个数组

(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... )|收藏

发表评论 姓  名: