一、多维数组去重
1. 系统函数
$arr = array(array('a'=>1,'b'=>2),array('a'=>1,'b'=>3),array('a'=>1,'b'=>2));
$arr2 = array_unique($arr, SORT_REGULAR);
2.递归函数
//递归函数
$arr = array(array('a'=>1,'b'=>2),array('a'=>1,'b'=>3),array('a'=>1,'b'=>2));
function aa($arr){
foreach($arr as $v){
$ar2[] =implode('_',$v);
}
$t_arr = array_count_values($ar2);
foreach($t_arr as $k2 =>$v2){
if($v2>1){
// echo $v2;die;
foreach($arr as $k3=> $v3){
$a = substr($k2,0,strpos($k2,'_'));
$b = substr($k2,strpos($k2,'_')+1);
if($a == $v3['a'] && $b == $v3['b']){
unset($arr[$k3]);
return aa($arr);
}
}
}
if(array_sum($t_arr) ==count($arr))
return $arr;
}
}
$arrf=aa($arr);
讲解视频:待发布
二、字符串字符是否完全不同
1. 用循环
function dif($str){
if(strlen($str)){
for($i=0;$i<strlen($str);$i++){
for($j=$i+1;$j<strlen($str);$j++){
if($str[$i]==$str[$j])
return 0;
}
}
}
return 1;
}
2. 用系统函数
function dif2($str){
if(strlen($str)){
$arr = str_split($str);
if(count($arr)>count(array_unique($arr)))
return 0;
}
return 1;
}
注:不能用explode进行字符串转数组,因为没有分隔符。
讲解视频:待发布