您现在的位置: 365建站网 > 365文章 > javascript /php 数组去重复的方法(array_unique)(在线去重工具)

javascript /php 数组去重复的方法(array_unique)(在线去重工具)

文章来源:365jz.com     点击数:385    更新时间:2018-01-07 09:51   参与评论

第一种方法:

</>code

  1. <textarea id="list" class="toolarea">365建站网
  2. www.365jz.com
  3. www.baidu.com
  4. www.365jz.com
  5. 365建站网
  6. soft.365jz.com
  7. www.365jz.com
  8. tool.365jz.com
  9. www.baidu.com
  10. soft.365jz.com
  11. tool.365jz.com
  12. 365建站网
  13. www.365jz.com</textarea>
  14. <input type="button" onclick="process()" value="去重处理" class="bt-green">
  15. <script type="text/javascript">
  16. function unique(ary) {
  17. var i = 0,
  18. gid='_'+(+new Date)+Math.random(),
  19. objs = [],
  20. hash = {
  21. 'string': {},
  22. 'boolean': {},
  23. 'number': {}
  24. }, p, l = ary.length,
  25. ret = [];
  26. for (; i < l; i++) {
  27. p = ary[i];
  28. if (p == null) continue;
  29. tp = typeof p;
  30. if (tp in hash) {
  31. if (!(p in hash[tp])) {
  32. hash[tp][p] = 1;
  33. ret.push(p);
  34. }
  35. } else {
  36. if (p[gid]) continue;
  37. p[gid]=1;
  38. objs.push(p);
  39. ret.push(p);
  40. }
  41. }
  42. for(i=0,l=objs.length;i<l;i++) {
  43. p=objs[i];
  44. p[gid]=undefined;
  45. delete p[gid];
  46. }
  47. return ret;
  48. }
  49. function process(){
  50. list = document.getElementById('list');
  51. arr = list.value.split('\n');
  52. arr = unique(arr);
  53. list.value = "";
  54. for(key in arr){
  55. list.value += arr[key] + '\n';
  56. }
  57. alert("处理完成!");
  58. }
  59. </script>

第二种方法

</>code

  1. function sx(){
  2. var rntArray=[],temp,hasValue;
  3. var array=document.getElementById("neirong").value.split("\n");
  4. for(var i in array){
  5. temp=array[i];
  6. hasValue=false;
  7. for(var j in rntArray){
  8. if(temp===rntArray[j]){
  9. hasValue=true;
  10. break;
  11. }
  12. }
  13. if(hasValue===false){
  14. rntArray.push(temp);
  15. }
  16. }
  17. document.getElementById("neirong1").value=rntArray.join("\n");
  18. }


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;
}

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (385人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号