php一维数组根据值排序,php 根据某个字段对一维,二维数组 排序 | 璞玉(POOY)...

阿虎同学,要求将一个数组根据元素出现的次数来行进排列:

要求输出结果如下:

3出现5次

4出现2次

1出现2次

function getNumberOfCalculations($array,$orderby="desc"){

$newArr =array();

$count = 0;

foreach ($array as $key => $value) {

foreach ($array as $k => $v) {

if($value == $v){

$count++;

}

}

if($count >0){

$new['value'] = $value;

$new['count'] = $count;

array_push($newArr, $new) ;

}

unset($count);

}

$countArr = array();

$countArr2 = array();

foreach ($newArr as $key1 => $value1) {

$countArr[$value1['value']] = $value1['count'];

}

foreach ($countArr as $key2 => $value2) {

$countA['value']=$key2;

$countA['count']=$value2;

$countArr2[] = $countA;

}

foreach ($countArr2 as $key3=>$value3){

$value4[$key3] = $value3['value'];

$count4[$key3] = $value3['count'];

}

if($orderby != 'desc'){

array_multisort($count4,SORT_NUMERIC,SORT_ASC,$value4,SORT_STRING,SORT_ASC,$countArr2);

}else{

array_multisort($count4,SORT_NUMERIC,SORT_DESC,$value4,SORT_STRING,SORT_DESC,$countArr2);

}

return $countArr2;

}

$arr=array(1,2,3,4,23,44,0,45,3,0,3,1,2,3,4,23,44,0,45,3,0,3,45,9,123,6768,1232,99,9,99,111111,9999,99);

$array = getNumberOfCalculations($arr,"desc");

foreach ($array as $key => $value) {

echo $value['value'] . "出现了:". $value['count'] ." 次";

}

执行之后如下图:

7289324f2ed7af3b824f83c93ba40aea.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值