php - PHP 中的哪些集合来计算和排序发生率
问题描述
使用 PHP 7.3/7.4 我想使用/创建一个键值集合。我想多次按下同一个键。每次值应该递增(第一次值为 1)。最后,我需要获取按值排序的键值对。
例如
$somecollection = ???
$somecollection->add('hello')
$somecollection->add('bye')
$somecollection->add('hello')
$somecollection->add('John')
$somecollection->add('bye')
$somecollection->add('hello')
应该返回
$ordered = $somecollection->ordered()
dump($ordered) --> ['hello' -> 3, 'bye' -> 2, 'john' ->1]
这已经存在了吗?
解决方案
有一个本机 PHP 函数。请参阅array_count_values()。
只需通过将其推入普通数组来添加一个值:
$values = [];
$values[] = 'hello';
$values[] = 'bye';
$values[] = 'hello';
$values[] = 'John';
$values[] = 'hello';
$values[] = 'bye';
// Count the unique instances in the array
$totals = array_count_values($values);
// If you want to sort them
asort($totals);
// If you want to sort them reversed
arsort($totals);
结果$totals
数组将是:
Array
(
[hello] => 3
[bye] => 2
[John] => 1
)
推荐阅读
- python - 使用 scipy.optimize.curve_fit 的逻辑曲线拟合问题
- python-3.x - 如何修复使用 Lambda 访问 dynamoDB 的错误:ClientError-ValidationException?
- php - 我在 livewire 辅助输入上不断收到 404 错误
- extjs - ExtJS 4.2 构建以错误的顺序生成 Sass 导入
- azure-data-explorer - 使用 KQL 的 Azure 数据资源管理器中 CPU 利用率的中值
- python - 如何在 Keras 中使用带有通用句子编码的 LSTM
- javascript - node js express错误找不到视图目录
- fastlane - 如何取消将“fastlane_tmp_keychain-db”设置为默认钥匙串?
- java - JLabel 文字阴影
- ethereum - 用户界面 Dapps 中的小数