php 找出数据中的不重复值

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 )

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值