获取数组中重复次数最多的元素,如果重复次数最多,请按字母顺序顺序获取结果

如何解决获取数组中重复次数最多的元素,如果重复次数最多,请按字母顺序顺序获取结果

假设我有一个水果数组,我想知道哪个或哪一个是最重复的,例如:

$array = array('apple','banana','apple','orange','grape','mango');
    
//Here I get an associative array with each fruit name as key and number of times repeated as value:    
$values = array_count_values($array);

//Here I order the array descendently in order to get the most repeated values first: 
arsort($values);

如您所见,苹果和橙子重复了相同的次数,如何以动态方式获得这些值,而我总是得到n重复次数最多的水果名称?

获得此信息后,我需要按字母顺序对那些最重复的值进行排序,当我在数组中具有那些最重复的值时,我认为可以使用ksort();函数,例如,如果我有: / p>

[orange] => 2
[apple] => 2
[grape] => 2

结果应为:

[apple] => 2
[grape] => 2
[orange] => 2

解决方法

基于this answer,这可以做到:

$array = array('orange','apple','banana','orange','grape','mango','apple');

$values = array_count_values($array);

$max = max($values);

$fruits = array_filter($values,function($num) use ($max){ return $max == $num; });

$ksort($fruits);

输出:

[
apple => 3,orange => 3
]
,

Online PHP evaluator

使用array_count_values()并计算数组的所有值,然后通过foreach()映射新数组,运行asort()并维护索引关联,然后运行arsort()来反转订购...


$array = array('apple','mango');

$fruits = array_count_values($array);
foreach ($fruits as $key => $val) {         
    $arr[$key] = $val;
}
asort($arr);
arsort($arr);
var_dump($arr);

输出用于:$array = array('apple','mango');

array(5) {
  ["apple"] => int(2)
  ["orange"] => int(2)
  ["banana"] => int(1)
  ["grape"] => int(1)
  ["mango"] => int(1)
}

输出用于:$array = array('watermelon','plum','watermelon','watermelon');

array(7) {
  ["plum"]=>
  int(3)
  ["watermelon"]=>
  int(3)
  ["apple"]=>
  int(2)
  ["orange"]=>
  int(2)
  ["banana"]=>
  int(1)
  ["grape"]=>
  int(1)
  ["mango"]=>
  int(1)
}

Different fruit list

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?