当前位置: 首页 > 面试题库 >

PHP:数组中最常见的值

慕容昊焜
2023-03-14
问题内容

所以我有这个JSON数组:

[0] => 238
[1] => 7
[2] => 86
[3] => 79
[4] => 55
[5] => 92
[6] => 55
[7] => 7
[8] => 254
[9] => 9
[10] => 75
[11] => 238
[12] => 89
[13] => 238

我将在实际的JSON文件中包含更多值。但是通过查看此内容,我可以看到238和55的重复次数比任何其他数字都多。我想做的是获取数组中前5个最重复的值,并将它们存储在新的PHP数组中。


问题答案:
$values = array_count_values($array);
arsort($values);
$popular = array_slice(array_keys($values), 0, 5, true);
  • array_count_values() 获取每个项目出现在数组中的次数计数
  • arsort() 按出现次数对数组进行反向排序
  • array_keys() 获取实际值,该值是结果中的数组键 array_count_values()
  • array_slice() 给我们结果的前五个要素

演示版

$array = [1,2,3,4,238, 7, 86, 79, 55, 92, 55, 7, 254, 9, 75, 238, 89, 238];
$values = array_count_values($array);
arsort($values);
$popular = array_slice(array_keys($values), 0, 5, true);

array (
  0 => 238,
  1 => 55,
  2 => 7,
  3 => 4,
  4 => 3,
)


 类似资料:
  • 问题内容: 我将如何查找数组中三个最常见的元素?我正在使用长度为10,000的数组,元素为0-100之间的随机整数。 我正在考虑使用两个数组,其中一个长度为100,并且仅通过使用if语句来递增。但是,我想知道是否有一种方法只能使用一个for / if loop(statement)来查找这些值。 问题答案: 如果要通过列表中的固定次数进行此操作,则需要第二个数据结构。 如果该集合中的值有上限和下限

  • 问题内容: 我需要在数组中找到最常见的(模态)元素。 我能想到的最简单的方法是为每个唯一元素设置变量,并为每个元素分配一个计数变量,每次将其记录在遍历数组的for循环中时,该变量都会增加。 不幸的是,数组的大小是未知的,并且会很大,所以这种方法是没有用的。 我在Objective- C中遇到了类似的问题,该问题使用NSCountedSet方法对数组元素进行排名。不幸的是,我对编程非常陌生,只能将第

  • 问题内容: 我有一个具有以下结构的行表,其中每一行都有每个人喜欢的颜色和该人所属组的列表。我如何返回每个组中最常见的颜色的列表? 您可以组合设置重叠,获取交点然后进行其他计数和排名吗? 问题答案: 快速而肮脏: 一个更好 [`LATERAL JOIN`](http://www.postgresql.org/docs/current/interactive/sql-select.html) 在Pos

  • 前言 数组在实战开发中,使用得相当频繁。前端同学通过接口拿到json数据后,往往需要把数据进行各种形式的变换和展示。这个时候,数组的常见操作,就发挥了很大的作用。 如果你对数组的基础知识不太熟悉,建议回去看看03-JavaScript的基础知识。 掌握了基础知识之后,我们再来看看,实战开发中,数组都有哪些常见操作。 数组的常见操作 从对象数组中,将属性的值提取为数组 一般人可能会想着通过 for

  • 前言 数组的常见方法如下: 方法 描述 备注 slice() 从数组中提取指定的一个或多个元素,返回结果为新的数组 不会改变原数组 splice() 从数组中删除指定的一个或多个元素,返回结果为新的数组 会改变原数组 concat() 连接两个或多个数组,返回结果为新的数组 不会改变原数组 join() 将数组转换为字符串,返回结果为转换后的字符串 不会改变原数组 reverse() 反转数组,返