第一种方法:
<textarea id="list" class="toolarea">365建站网
www.365jz.com
www.baidu.com
www.365jz.com
365建站网
soft.365jz.com
www.365jz.com
tool.365jz.com
www.baidu.com
soft.365jz.com
tool.365jz.com
365建站网
www.365jz.com</textarea>
<input type="button" onclick="process()" value="去重处理" class="bt-green">
<script type="text/javascript">
function unique(ary) {
var i = 0,
gid='_'+(+new Date)+Math.random(),
objs = [],
hash = {
'string': {},
'boolean': {},
'number': {}
}, p, l = ary.length,
ret = [];
for (; i < l; i++) {
p = ary[i];
if (p == null) continue;
tp = typeof p;
if (tp in hash) {
if (!(p in hash[tp])) {
hash[tp][p] = 1;
ret.push(p);
}
} else {
if (p[gid]) continue;
p[gid]=1;
objs.push(p);
ret.push(p);
}
}
for(i=0,l=objs.length;i<l;i++) {
p=objs[i];
p[gid]=undefined;
delete p[gid];
}
return ret;
}
function process(){
list = document.getElementById('list');
arr = list.value.split('\n');
arr = unique(arr);
list.value = "";
for(key in arr){
list.value += arr[key] + '\n';
}
alert("处理完成!");
}
</script>
第二种方法
function sx(){
var rntArray=[],temp,hasValue;
var array=document.getElementById("neirong").value.split("\n");
for(var i in array){
temp=array[i];
hasValue=false;
for(var j in rntArray){
if(temp===rntArray[j]){
hasValue=true;
break;
}
}
if(hasValue===false){
rntArray.push(temp);
}
}
document.getElementById("neirong1").value=rntArray.join("\n");
}
php数组函数序列之array_unique() - 去除数组中重复的元素值
array_unique() 定义和用法
array_unique() 函数移除数组中的重复的值,并返回结果数组。
当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。
返回的数组中键名不变。
语法
array_unique(array)
参数 描述
array 必需。规定输入的数组。
说明
array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。
提示和注释
注释:被返回的数组将保持第一个数组元素的键类型。
例子
<?php
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
print_r(array_unique($a));
?>
输出:
Array ( [a] => Cat [b] => Dog )
例一:
<?php
$input = array("a" => "green","", "red","b" => "green", "","blue", "red","c" => "witer","hello","witer");
//$result = array_unique($input); //去除重复元素
$result = a_array_unique($input); //只留下单一元素
foreach($result as $aa)
{
echo $aa."<br />";
}
function a_array_unique($array)//写的比较好(写方法)
{
$out = array(); //定义变量out为一个数组
foreach ($array as $key=>$value) //将$array数组按照$key=>$value的样式进行遍历
{
if (!in_array($value, $out))//如果$value不存在于out数组中,则执行
{
$out[$key] = $value; //将该value值存入out数组中
}
}
return $out; //最后返回数组out
}
?>
PHP数组去除重复项 有个内置函数array_unique (),但是php的 array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组 的 array_unique函数
例二:
function unique_arr($array2D,$stkeep=false,$ndformat=true)
{
// 判断是否保留一级数组键 (一级数组键可以为非数字)
if($stkeep) $stArr = array_keys($array2D);
// 判断是否保留二级数组键 (所有二级数组键必须相同)
if($ndformat) $ndArr = array_keys(end($array2D));
//降维,也可以用implode,将一维数组转换为用逗号连接的字符串
foreach ($array2D as $v)
{
$v = join(",",$v);
$temp[] = $v;
}
//去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
//再将拆开的数组重新组装
foreach ($temp as $k => $v)
{
if($stkeep) $k = $stArr[$k];
if($ndformat)
{
$tempArr = explode(",",$v);
foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
}
else $output[$k] = explode(",",$v);
}
return $output;
}
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛