首页 > 编程语言 > 详细

要求保持数组$array键值由大到小,并且其中相同键值的键名要从小到大排序

时间:2017-01-03 22:44:29      阅读:290      评论:0      收藏:0      [点我收藏+]

需求:要求保持数组$array键值由大到小,并且其中相同键值的键名要从小到大排序


技术分享

实现代码如下:

<?
header("Content-type: text/html; charset=UTF-8");
echo ‘需求:要求保持数组$array键值由大到小,并且其中相同键值的键名要从小到大排序‘;
echo ‘<pre />‘;


$array = array(
    ‘5‘ => 100,
    ‘3‘ => 80,
    ‘1‘ => 80,
    ‘4‘ => 60,
    ‘0‘ => 60,
    ‘2‘ => 40
);

$kArr=array();
$vArr=array();
$newkArr=array();

foreach($array as $key=>$value){
	$kArr[]=$key;
	$vArr[]=$value;
}
$kStr=implode(",",$kArr);


$repeatArr=array();
foreach($array as $k=>$v){
	$arrn[$v][]=$k;
}
foreach($arrn as $k=>$v){
	if(count($v)>1){
		//echo $k.‘重复下标为‘;
		$aa=‘‘;
		foreach($v as $vv){
			$aa .= $vv.‘,‘;
		}
		$bb=substr($aa, 0, -1);
		$bbarr=explode(‘,‘,$bb);
		sort($bbarr);
		$bbstr=implode(‘,‘,$bbarr);
		$repeatArr[$bb] = $bbstr;
	}
}

foreach($repeatArr as $key=>$value){
	$kStr=str_replace($key,$value,$kStr);
}

$newkArr=explode(‘,‘,$kStr);
echo ‘<hr />‘;
$c=array_combine($newkArr,$vArr);
print_r($c);


本文出自 “PHPer许琴-专注于PHP技术” 博客,请务必保留此出处http://xuqin.blog.51cto.com/5183168/1888693

要求保持数组$array键值由大到小,并且其中相同键值的键名要从小到大排序

原文:http://xuqin.blog.51cto.com/5183168/1888693

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!