php 找出数据中的不重复值
方法一(可严格验证):
直接代码展示:
/**
* 找出数组中的不重复值
* @param array $arr 一维数组
* @param boolean $falg 是否严格验证
* @return array 返回不重复的值
*/
function find_arr_unrepeat($arr,$falg = false) {
$data = [];
if(is_array($arr) && !empty($arr)){
foreach ($arr as $key => $value) {
$i = in_array_num($value,$arr,$falg);
if($i === 1){
array_push($data, $value);
}
}
}
return $data;
}
/**
* 找出特定值在数组中的出现次数
* @param string|int $key 查找的值
* @param array $arr 所有值
* @param boolean $falg 是否严格验证
* @return int
*/
function in_array_num($key,$arr,$falg = false){
$i = 0;
foreach ($arr as $k => $v) {
if($v == $key && $falg === false || $v === $key && $falg == true){
$i++;
}
}
return $i;
}
$arr = [3,'3',4,5,6,4,2,2,1];
echo '<br>普通:';
var_export(find_arr_unrepeat($arr));
echo '<br>严格:';
var_export(find_arr_unrepeat($arr,true));
结果展示:
普通:array ( 0 => 5, 1 => 6, 2 => 1, )
严格:array ( 0 => 3, 1 => '3', 2 => 5, 3 => 6, 4 => 1, )
简单方法(不严格):
$arr = [3,'3',4,5,6,4,2,2,1];
function find_arr_unrepeats($arr){
$arrcount = array_count_values($arr);
$data = [];
foreach($arrcount as $key=>$v){
if ($v == 1){
array_push($data,$key);
}
}
return $data;
}
print_r(find_arr_unrepeats($arr));
结果输出:
Array ( [0] => 5 [1] => 6 [2] => 1 )