• PHP 二维数组去重(保留指定键值的同时去除重复的项)


    对于如下二维数组,要求对其进行去重:

    $arr = array(
              '0'=>array(
                        'name'=>'james',
                        'age'=>30,
              ),
              '1'=>array(
                        'name'=>'susu',
                        'age'=>26,
              ),
              '2'=>array(
                        'name'=>'james',
                        'age'=>30,
              ),
              'new'=>array(
                        'name'=>'kube',
                        'age'=>37,
              ),
              'list'=>array(
                        'name'=>'kube',
                        'age'=>27,
              ),
    );

      //使用方法
      $key ='name';
       $arr_key = second_array_unique_bykey($arr,$key);
       printf("As for the givenkey->%s:<br>",$key);
       print_r($arr_key);
       echo "<br/>";
     

    二维数组内部的一维数组因某一个键值不能相同,删除重复项:

    /*针对某一个键值来进行去重*/

    <?php
    $arr= array(……);  //同上的二维数组
    functionsecond_array_unique_bykey($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]); //销毁一个变量  如果$tmp_arr中已存在相同的值就删除该值
            }
            else {
                $tmp_arr[$k] = $v[$key];  //将不同的值放在该数组中保存
            }
       }
       //ksort($arr); //ksort函数对数组进行排序(保留原键值key)  sort为不保留key值
        return $arr;
       }

    输出结果:

    As for the given key->name:
    Array (
     [0] => Array ( [name] => james [age] => 30 ) 
     [1] => Array ([name] => susu [age] => 26 ) 
     [2] => Array ( [name] => kube [age]=> 37 ) 
    ) 
  • 相关阅读:
    KVM镜像管理利器-guestfish使用详解
    两台linux机器时间同步
    git配合tortoiseGit的基础使用
    使用yum来下载RPM包而不进行安装
    Linux解压缩总结
    Linux下使用git命令及github项目
    linux shell常用快捷键
    调用 sphinx-build生成HTML文件
    复制virtualenv环境到其他服务器环境配置的方法
    CentOS 6.5 PYPI本地源制作
  • 原文地址:https://www.cnblogs.com/T8888/p/12929615.html
Copyright © 2020-2023  润新知