arrays - 如何在php多维数组中获得最高分
问题描述
我有以下数组
$usersAttemptsInfo = [
"1" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 2],
"2" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 4],
"3" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 5],
"4" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 3],
"5" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 5],
"6" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 2],
"7" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 3]
];
我想找出谁是最高分,假设两个人获得相同的分数,我需要这两个值。
预期输出
$expected = [
"3" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 5],
"5" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 5]
];
这5
是最高分,所以我期待这个答案。
my code
$higiestScore = max(array_column($usersAttemptsInfo, 'totalCorrectQuestion'));
但它只返回一个分数。
解决方案
该max()
函数只会返回一个值,结果没有问题。totalCorrectQuestion
相反,您可以在完成 max 函数后尝试使用 过滤数组以获取具有相同值的另一个数组。
更新:你可以试试这个
<?php
$usersAttemptsInfo = [
"1" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 2],
"2" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 4],
"3" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 5],
"4" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 3],
"5" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 5],
"6" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 2],
"7" => ["totalQuesAttempted" => 10, "totalCorrectQuestion" => 3]
];
$highestscore = max(array_column($usersAttemptsInfo, 'totalCorrectQuestion'));
$results = array_filter($usersAttemptsInfo,
function ($item) {
global $highestscore;
if($item["totalCorrectQuestion"] == $highestscore) return $item;
});
var_dump($results);
?>
推荐阅读
- performance - 每次点击都进行 API 调用是个好主意吗?
- microsoft-graph-api - Teams Graph API,从每个 Teams 频道检索文件
- android - 如何使用 Testcafe 测试推送通知
- angularjs - 在 AngularJS 中没有更改检测的降级 Angular 组件
- alwayson - 事务日志备份在从 Always on 移除后不会收缩 - log_reuse_wait_desc“可用性副本”
- python - 完成我的任务的正确语法是什么?
- python - Calculate column-wise mean of rows of a numpy matrix selected using values from another array
- docker - 是否可以附加到正在运行烧瓶的 docker 容器?
- php - PHP:将 LSBF 格式的二进制字符串的一部分转换为普通变量?
- typescript - 类型安全地从仅在运行时知道的路径导入 TypeScript 模块