精华内容
下载资源
问答
  • php数组去重方法

    千次阅读 2020-01-10 15:02:57
    一维数组的重复项 <?php $aa = array("apple", "banana", "pear", "apple", "wail", "watermalon"); $bb = array_unique($aa);...二维数组去重项 $result = array( 0=>array('a'=>1,'b'=>'Hello'...

    一维数组的重复项

    <?php
    $aa = array("apple", "banana", "pear", "apple", "wail", "watermalon");
    $bb = array_unique($aa);
    print_r($bb);

     

    二维数组去重项

    $result = array(
        0=>array('a'=>1,'b'=>'Hello'),
        1=>array('a'=>1,'b'=>'other'),
        2=>array('a'=>1,'b'=>'other'),
    );

    处理成

    $result = array(
        0=>array('a'=>1,'b'=>'Hello'),
        1=>array('a'=>1,'b'=>'other')   
    );

    使用方法

    array_unique($result, SORT_REGULAR);

     

    PHP多维数组去重

    /**
     * @param  array  $arr [description]
     * @return [type]      [description]
     */
    static function super_unique($array, $recursion = false){
       // 序列化数组元素,去除重复
       $result = array_map('unserialize', array_unique(array_map('serialize', $array)));
       // 递归调用
       if ($recursion) {
          foreach ($result as $key => $value) {
             if (is_array($value)) {
                $result[ $key ] = super_unique($value);
             }
          }
       }
       return $result;
    }

     

    PHP实现的多维数组去重操作示例

    <?php
    $str = '{
      "status": 0,
      "result": [
        {
          "hostName": "杨新",
          "pcode2": "41675441",
          "email": "xin.yang@xx.cn",
          "selfName": "邵兵"
        },
        {
          "hostName": "杨新",
          "pcode2": "41675441",
          "email": "xin.yang@xx.cn",
          "selfName": "邵兵"
        },
        {
          "hostName": "中信国安科技控股有限公司",
          "pcode2": "9730284461",
          "email": "liuxiao@gakj.xx.com",
          "selfName": "邵兵"
        },
        {
          "hostName": "中信国安科技控股有限公司",
          "pcode2": "9730284461",
          "email": "liuxiao@gakj.xx.com",
          "selfName": "邵兵"
        },
        {
          "hostName": "刘惠",
          "pcode2": "64068956",
          "email": "huijie.liu@xx.cn",
          "selfName": "邵兵"
        },
        {
          "hostName": "刘惠",
          "pcode2": "64068956",
          "email": "huijie.liu@xx.cn",
          "selfName": "邵兵"
        },
        {
          "hostName": "刘凯南",
          "pcode2": "14818360",
          "email": "kainan.liu_3@xx.cn",
          "selfName": "邵兵"
        },
        {
          "hostName": "刘凯南",
          "pcode2": "14818360",
          "email": "kainan.liu_3@xx.cn",
          "selfName": "邵兵"
        },
        {
          "hostName": "宋纬奇",
          "pcode2": "62947142",
          "email": "weiqi.song@xx.cn",
          "selfName": "邵兵"
        },
        {
          "hostName": "宋纬奇",
          "pcode2": "62947142",
          "email": "weiqi.song@xx.cn",
          "selfName": "邵兵"
        }
      ],
      "content_type": "application/json"
    }';
    $res = json_decode($str,true);
    echo 'num: '.count($res['result']);
    print_r($res['result']);
    echo "</br></br></br>";
    $rrr = $res['result'];
    $serializeArrs = array_map('serialize',$rrr);
    $uniqueArrs = array_unique($serializeArrs);
    $unserializeArrs = array_map('unserialize',$uniqueArrs);
    print_r($unserializeArrs);
    echo "</br></br></br>";
    echo json_encode($unserializeArrs);
    exit;

     

    因为某一键名的值不能重复,删除重复项

    <?php
    function assoc_unique($arr, $key) {
        $tmp_arr = array();
        foreach ($arr as $k => $v) {
            if (in_array($v[$key], $tmp_arr)) {//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
                unset($arr[$k]);
            } else {
                $tmp_arr[] = $v[$key];
            }
        }
        sort($arr); //sort函数对数组进行排序
        return $arr;
    }$aa = array(
        array('id' => 123, 'name' => '张三'),
        array('id' => 123, 'name' => '李四'),
        array('id' => 124, 'name' => '王五'),
        array('id' => 125, 'name' => '赵六'),
        array('id' => 126, 'name' => '赵六')
    );
    $key = 'id';
    assoc_unique(&$aa, $key);
    print_r($aa);

     

    PHP多维数组去重

    <?php 
    function array_unique_fb($array2D) {
        foreach ($array2D as $v) {
            $v = join(",", $v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
            $temp[] = $v;
        }
        $temp = array_unique($temp);//去掉重复的字符串,也就是重复的一维数组
        foreach ($temp as $k => $v) {
            $temp[$k] = explode(",", $v);//再将拆开的数组重新组装
        }
        return $temp;
    }
     
    $aa = array(
        array('id' => 123, 'name' => '张三'),
        array('id' => 123, 'name' => '李四'),
        array('id' => 124, 'name' => '王五'),
        array('id' => 123, 'name' => '李四'),
        array('id' => 126, 'name' => '赵六')
    );
    $bb = array_unique_fb($aa);
    print_r($bb)

     

    多维数组根据某个特定字段过滤重复值

    //假如 数据是这样的 $arr=[ [ 'goods_name'=>'xxx', 'goods_id'=>111, ], [
    'goods_name'=>'xxx',
      'goods_id'=>123,
    ],
    [
    'goods_name'=>'xxx',
    'goods_id'=>'123'
    ],
    ];
    function array_unset_tt($arr,$key='goods_id'){
    $res = array();
        foreach ($arr as $value) {
            //查看有没有重复项
            if(isset($res[$value[$key]])){
                unset($value[$key]);  //有:销毁
            }else{
                $res[$value[$key]] = $value;
            }
        }
        return $res;
    }
    调用方法处理后,就把重复的goods_id的数组过滤,只剩下一个!!!开心吗?

     

     

     

     

     

    展开全文
  • php的二维数组去重,数据结构重建和js数组去重最简方法
  • 这篇文章主要介绍了关于前端html数组去重方法,有着一定的参考价值,现在分享给...如果检索的内容不存在于数组中,则返回-12:for循环练习:数组去重//第一种方法var aList = [1,2,3,4,4,3,2,1,2,3,4,5,6,5,5,3,3,4...

    这篇文章主要介绍了关于前端html数组去重的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    数组去重

    用到的知识点:

    1:indexOf()

    该方法是返回数组中元素第一次出现的索引值;

    如果有,则正常返回索引值;

    如果检索的内容不存在于数组中,则返回-1

    2:for循环

    练习:数组去重

    //第一种方法

    var aList = [1,2,3,4,4,3,2,1,2,3,4,5,6,5,5,3,3,4,2,1];

    var aList2 = [];

    for (var i = 0 ; i < aList.length ; i ++) {

    var value = aList[i]

    if (aList.indexOf(value) + 1) {

    console.log('重复了',value)

    } else {

    aList2.push(value)

    }

    }

    console.log(aList2)// 第二种方法

    var aList = [1,2,3,4,4,3,2,1,2,3,4,5,6,5,5,3,3,4,2,1];

    for(var i=0;i

    {

    if(aList.indexOf(aList[i])==i)

    {

    aList2.push(aList[i]);

    }

    }

    alert(aList2);// 第三种方法

    var aList = [1,2,3,4,4,3,2,1,2,3,4,5,6,5,5,3,3,4,2,1];

    for (var i = 0; i < aList.length; i++) {

    var item = aList[i]

    if (newArray.indexOf(item) == -1) {

    newArray.push(item)

    } else {

    console.log('重复了',item)

    }

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

    相关推荐:

    展开全文
  • 网上有不少关于数组去重的博客文章,方法各式各样,但有些方法实用性不好,很容易形成没必要要的麻烦,因此咱们须要去其糟粕取其精华,下面咱们就整理一些比较实用的数组去重方法。javascript1、for循环嵌套,利用...

    js数组去重是比较常见的数组操做方式之一,网上有不少关于数组去重的博客文章,方法各式各样,但有些方法实用性不好,很容易形成没必要要的麻烦,因此咱们须要去其糟粕取其精华,下面咱们就整理一些比较实用的数组去重方法。javascript

    1、for循环嵌套,利用splice去重

    此方法是比较经常使用的方法之一,也是es5中比较实用的方法之一。话很少说,上代码:java

    function newArr(arr){

    for(var i=0;i

    for(var j=i+1;j

    if(arr[i]==arr[j]){

    //若是第一个等于第二个,splice方法删除第二个

    arr.splice(j,1);

    j--;

    }

    }

    }

    return arr;

    }

    var arr = [1,1,2,5,6,3,5,5,6,8,9,8];

    console.log(newArr(arr))

    2、建新数组,利用indexOf去重

    此方法也是es5中比较简单的方法之一,基本思路是新建一个数组,原数组遍历传入新数组,判断值是否存在,值不存在就加入该新数组中;值得一提的是,方法“indexOf”是es5的方法,IE8如下不支持。话很少说,上代码:数组

    function newArr(array){

    //一个新的数组

    var arrs = [];

    //遍历当前数组

    for(var i = 0; i < array.length; i++){

    //若是临时数组里没有当前数组的当前值,则把当前值push到新数组里面

    if (arrs.indexOf(array[i]) == -1){

    arrs.push(array[i])

    };

    }

    return arrs;

    }

    var arr = [1,1,2,5,5,6,8,9,8];

    console.log(newArr(arr))

    3、ES6中利用Set去重

    此方法是全部去重方法中代码最少的方法,代码以下:es5

    function newArr(arr){

    return Array.from(new Set(arr))

    }

    var arr = [1,1,2,9,6,9,6,3,1,4,5];

    console.log(newArr(arr))

    展开全文
  • php数组去重的小例子,供初学者参考。复制代码 代码如下:function assoc_unique($arr, $key) {$tmp_arr = array();foreach($arr as $k => $v) {if(in_array($v[$key], $tmp_arr)) {unset($arr[$k]);} else {$...

    php中数组去重的小例子,供初学者参考。

    复制代码 代码如下:

    function assoc_unique($arr, $key) {

    $tmp_arr = array();

    foreach($arr as $k => $v) {

    if(in_array($v[$key], $tmp_arr)) {

    unset($arr[$k]);

    } else {

    $tmp_arr[] = $v[$key];

    }

    }

    sort($arr);

    return $arr;

    }

    $aa = array(

    array('id' => 123, 'name' => '张三'),

    array('id' => 123, 'name' => '李四'),

    array('id' => 124, 'name' => '王五'),

    array('id' => 125, 'name' => '赵六'),

    array('id' => 126, 'name' => '赵六')

    );

    $key = 'name';

    assoc_unique(&$aa, $key);

    print_r($aa);

    ?>

    展开全文
  • php一维数组去重方法

    2020-10-22 10:46:03
    PHP一维数组去重方法array_unique() array_unique() :去除数组中的重复项,只适用于一维数组
  • function assoc_unique($arr, $key) {$tmp_arr = array();foreach($arr as $k => $v) {if(in_array($v[$key], $tmp_arr)) {unset($arr[$k]);} else {$tmp_arr[] = $v[$key];}}sort($arr);return $arr;...
  • 满意答案psxdnn2014.08.14采纳率:43%等级:12已帮助:5949人$__tmpArr = Array('0' => Array('name' => 网站更新维护'time' => 6)'1' => Array('name' => 新闻更新'time' =>...
  • 二维数组去重另外一种方法   最近用到了一个获取历史会议列表的问题,需要去这个多维数组去重后返回返回给客户端,这里使用了几个php的组装函数,分享下,示例代码如下:   $str = '{  "status": 0, ...
  • 主要介绍了PHP编程快速实现数组去重方法,结合实例形式分析了php数组去重复函数与使用技巧,需要的朋友可以参考下
  • 简单的PHP二维数组去重方法: public function a_array_unique($array){ $out = array(); foreach ($array as $key=>$value) { if (!in_array($value, $out)){ $out[$k...
  • function assoc_unique($arr, $key) {$tmp_arr = array();foreach($arr as $k => $v) {if(in_array($v[$key], $tmp_arr)) {unset($arr[$k]);} else {$tmp_arr[] = $v[$key];}}sort($arr);return $arr;...
  • 方法二:单层for循环原理和方法一相似function norepeat(arr){arr.sort();//先排序让大概相同的在一个位置,这里为什么说是大概相同 是因为sort排序是把元素当字符串排序的 它和可能排成 1 1 10 11 2 20 3 ... 不是...
  • 以为其中一维数组相同字段合并,并且total字段相加$arr=array(5) {[0]=>array(3) {["id"]=>string(1) "1"["total"]=>string(1) "1"["name"]=>string(4) "张三"}[1]=>array(3) {["id"]=>string(1) ...
  • 主要介绍了PHP数组去重的更快实现方式,结合实例形式对比分析了php实现数组去重的各种常见操作技巧与注意事项,需要的朋友可以参考下
  • 主要是介绍了php数组去重实例及分析。需要的朋友可以过来参考下,希望对大家有所帮助
  • php数组去重的小例子,供初学者参考
  • 因为不太了解你其他业务,这里通过对多个数组观察发现,他们的键名都是一致的。所以有2个简单的办法(1)先翻转一维数组,然后进行合并,再翻转回来这里就不写详细代码,写下简单过程$array_a =array_flip($array_a);...
  • php数组去重方法

    2019-09-29 12:52:03
    本文实例讲述了PHP数组去重的更快实现方式。分享给大家供大家参考,具体如下:  使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组。这个函数大多数情况下都能工作得很...
  • 二维数组去重方法

    千次阅读 2019-01-18 15:31:30
    //二维数组去重 function moreArrayUnique($arr=array()){ foreach($arr[0] as $k =&gt; $v){ $arr_inner_key[]= $k; } foreach ($arr as $k =&gt; $v){ $v =join(...
  • PHP中提供了array_unique函数去除一维数组中的重复项,但是我们实际的项目开发中,从数据库select查询出来的数组经常是二维的;这里面可能有重复项,这就需要我们自己定义函数进行去除重复项。思路首先获取第二维...
  • PHP数组去重

    2019-10-22 17:35:09
    PHP数组去重 array_unique: 此函数为数组翻转,也就是将原数组的键值翻转为键名,将原数组的键名翻转为键值;这样以来,就会得到一组唯一键值的数组。 array_unique:移除一个数组中重复的值,返回一个拥有唯一值的...
  • ES6数组去重方法

    2021-03-26 13:25:00
    Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员),操作方法有:add(value)、delete(value)、has(value)、clear();遍历方法有:keys()、values()、entries()、forEach() 1、ES6——new ...
  • 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组,通过本文给大家介绍PHP数组去重比较快的实现方式,需要的朋友参考下本
  • php数组去重

    2018-06-27 16:12:13
    更快的数组去重方法php有一个键值互换的方法array_flip,我们可以使用这个方法去重,因为键值互换,原来重复的值会变为相同的键。 然后再进行一次键值互换,把键和值换回来则可以完成去重。...
  • php 数组去重

    2020-04-03 12:48:25
    /** * 数组去重(唯一ID码) * @param array $array * @return array */ private function uniqueArr($array){ //选中数据去重 $result = array(); foreach($array as $k=>$val...
  • array_unique函数就是可以处重的,它具备了这个功能了,下面我们一来看一个关于PHP使用array_unique对二维数组去重处理例子。php 5.2.9 版本增加了array_unique对多维数组的支持,在处理多维数组是需要设置sort_...
  • 主要介绍了PHP二维数组去重方法,结合实例形式分析了php数组遍历、判断及去除重复项的相关操作技巧,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,016
精华内容 2,006
关键字:

php数组去重的方法