加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

按相同对象的数量排序PHP数组

发布时间:2020-12-13 21:36:57 所属栏目:PHP教程 来源:网络整理
导读:无论如何以这种方式订购阵列?例如,如果我有这个数组: $array = array("foo","bar","item","foo","foo"); 而且我想订购它以便它是“foo”,“foo”,“item”,“bar”有没有办法做到这一点? 解决方法 这会吗? $array1 = array_count_values($array);arsort(
无论如何以这种方式订购阵列?例如,如果我有这个数组:

$array = array("foo","bar","item","foo","foo");

而且我想订购它以便它是“foo”,“foo”,“item”,“bar”有没有办法做到这一点?

解决方法

这会吗?

$array1 = array_count_values($array);
arsort($array1);
var_dump($array1);

会给你

array(3) {
  ["foo"]=>
  int(3)
  ["item"]=>
  int(2)
  ["bar"]=>
  int(1)
}

或者你是否一定需要它们作为重复值?如果是的话,你可以选择以下内容:

usort($array,create_function('$a,$b','return $GLOBALS["array1"][$a]<$GLOBALS["array1"][$b];'));

这是丑陋的代码,但演示了这种技术.使用php 5.3关闭也很容易让它看起来很好看,但我不知道你是否在使用5.3.这看起来像这样:

$acount=array_count_values($array = array("foo","foo"));
usort($array,function($a,$b) use ($acount) { return $acount[$a]<$acount[$b]; });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读