第一种方法:
<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;
}
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛