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