php数组排序与去重

php二维数组的去重

public function a_array_unique($array){
	$out = $in = array();
	$avatar = '';
	foreach($array as $key => $value){
			$avatar = $value['from_avatar'];
			unset($value['from_avatar']);
			if(!in_array($value,$in)){
				$out[$key] = array_merge($value,['from_avatar' => $avatar]);
				$in[$key] = $value;
			}
	}
	return $out;
}

PHP一维数组去重

public function a_array_unique($array){
		$out = array();
		foreach ($array as $key=>$value) {
		    if (!in_array($value, $out))
			{
		        $out[$key] = $value;
		    }
		}
		return $out;
	}

php数组内置函数的排序
sort() - 对数组进行升序排列

		$cars=array("Volvo","BMW","Toyota");
		sort($cars);
	rsort() - 对数组进行降序排列
		$numbers=array(4,6,2,22,11);
		sort($numbers);
	asort() - 根据关联数组的值,对数组进行升序排列
		$cars=array("Volvo","BMW","Toyota");
		rsort($cars);
	ksort() - 根据关联数组的键,对数组进行升序排列
		$numbers=array(4,6,2,22,11);
		rsort($numbers);
	arsort() - 根据关联数组的值,对数组进行降序排列
	$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
	asort($age);
	krsort() - 根据关联数组的键,对数组进行降序排列
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);

arsort() - 根据数组的值,对数组进行降序排列
下面的实例根据数组的值,对关联数组进行降序排列:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
?>

krsort() - 根据数组的键,对数组进行降序排列
下面的实例根据数组的键,对关联数组进行降序排列:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
?>

php冒泡排序与快速排序

public function maopao($arr){
	$count = count($arr);
	for($i=0;$i<$count-1;$i++){
		for($j=0;$j<$count-$i-1;$j++){
				if($arr[$j] > $arr[$j+1]){
						$temp = $arr[$j];
						$arr[$j]= $arr[$j+1];
						$arr[$j+1] = $temp;
				}
		}
	}
}
快速排序
public function quick_sort($array){
	if(count($array) =< 1){return $array;}
	$key = $array[0];
	$left_arr = array();
	$right_arr = $arr;
	for($i = 1;$i < count($array);$i++){
		if($array[$i] <= $key){$left_arr[] = $array[$i];}
		else{$right_arr[] = $array[$i];}
	}
	$left_arr = quick_sort($left_arr);
	$right_arr= quick_sort($right_arr);
	return array_merge($left_arr,array($key);$right_arr);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值