技术饭

PHP二维数组去除重复项

copylian    0 评论    238 浏览    2020.11.18

PHP的一维数组正常使用array_unique()方法直接去除重复项即可,但是二维数据似乎没有固定的内置函数,这时候就需要自己手动些方法处理了,那如果去除二维数组的重复项呢?研究了一会,大概写了简略版本的去重方案。

//处理数据

$params['org_info'] = [

      ['org_id' => 1, 'value' => '值1'],

      ['org_id' => 2, 'value' => '值2'],

      ['org_id' => 2, 'value' => '值2'],

      ['org_id' => 4, 'value' => '值3'],

      ['org_id' => 4, 'value' => '值3']

];


$org_info = $params['org_info'];

$org_info_arr = []; //过渡处理的数组

if(!empty($org_info)){

      //循环删除重复项

      foreach($org_info as $key => $value){

            //默认未匹配到

            $is_match= 0;

            foreach($org_info_arr as $key_1 => $value_1){

                  //存在则直接跳过

                  if($value['org_id'] == $value_1['org_id'] && $value['value'] == $value_1['value']){

                        $is_match = 1;

                        break;

                  }

            }


            //如果未匹配到则压入数组

            if($is_match == 0){

                  $org_info_arr[] = $value;

            }

      }

}


//处理完成之后的数据

$params['org_info'] = [

      ['org_id' => 1, 'value' => '值1'],

      ['org_id' => 2, 'value' => '值2'],

      ['org_id' => 4, 'value' => '值3']

];

飓风呀
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢