php去除二维数组中固定键值对应重复项

php   2024-03-29 08:51   151   0  
在web开发中,数据库和数组是两个常用的数据存储和处理方式。通常情况下,开发人员会使用php联合mysql从数据库中读取数据,并存储在一个数组里进行处理。但是,有时候我们需要确保数组里的值不重复,才能达到我们需要的目的。那么,本文就来介绍如何在php中处理数组值的唯一性。
PHP中数组的唯一性
在PHP中,我们经常使用数组来处理并存储数据。PHP中的数组是一种有序的序列,其包含了一系列的键值对,即每个值对应一个关联的键。当我们需要对数组进行去重操作时,需要对数组的值进行判断,判断某个值是否已经存在于数组里。
在PHP中,可以使用array_unique()函数去掉数组中重复的值,但是这个函数只能去掉具有相同值的元素,而不关心键名。换而言之,使用该函数处理数组时,键名并不会被保留,只会留下唯一的键值。
如果要在数组中常常某个字符串不重复,就不能使用array_unique()函数这么简单。需要用到PHP中的in_array()函数。该函数可以判断数组中是否存在某个值,如果存在保存在对应数组中。
下面是一个封装好的方法示例:
/*
* 去除二维数组中固定键值对应重复项
* $arr需去重数组
* $key 固定键值
*/
function quchong($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 json_encode($arr,true);
}