PHP 二维数组去掉重复值并保持原结构
直接上代码,解释很详细
1 //二维数组去掉重复值 2 function arrunique($a){ 3 foreach($a[0] as $k => $v){ //二维数组的内层数组的键值都是一样,循环第一个即可 4 $ainner[]= $k; //先把二维数组中的内层数组的键值使用一维数组保存 5 } 6 foreach ($a as $k => $v){ 7 $v =join("、",$v); //将 值用 顿号连接起来 8 $temp[$k] =$v; 9 } 10 11 $temp =array_unique($temp); //去重 12 foreach ($temp as $k => $v){ 13 $a = explode(",",$v); //拆分后的重组 14 $arr_after[$k]= array_combine($ainner,$a); //将原来的键与值重新合并 15 } 16 return $a; 17 }
就是先存下键值,然后使用join降维打击,然后用array_unique方法对一维去重,结果再用explode方法拆分,然后再array_combine方法组合键和值
array_combine()函数使用
php 两个数组合并,一个做键,一个做值
项目中遇到这么个情况,有两个数组: $afloor,$adata;
这两个数组合并为一个新数组:$acombine,使用$afloor中的值,为新数组的键名,$adata中的值为新数组相对应的值.
直接使用PHP array_combine() 函数就行了,array_combine()传入2个参数,array_combine(作为键的数组,作为值的数组)。
比如: $acombine = array_combine($afloor,$adata); 。