php - 如何将此数组从最高数量到最低数量限制为 3 个项目?
问题描述
这是我的数组:
Array
(
[4] => Array
(
[0] => stdClass Object
(
[name] => fixed
[total_kms] => 200
)
)
[9] => Array
(
[0] => stdClass Object
(
[name] => Temo
[total_kms] => 550
)
)
[10] => Array
(
[0] => stdClass Object
(
[name] => mohamed mostafa
[total_kms] => 1273
)
)
[11] => Array
(
[0] => stdClass Object
(
[name] => ahmed mostafa
[total_kms] => 1122
)
)
)
我想像这个表一样显示这个数组,但是这个数组从最高数到最低数限制为 3 个名称
- 显示名称
- 显示总公里数
- 从最高数到最低数的顺序
- 仅限于 3 个名称(表格应包含前 3 个名称具有最高公里数)
我的表格代码
<table class="table">
<h4 class="text-muted">
Top3 drivers done most kilometers
</h4>
<hr>
<tbody>
<tr>
<th class="thead-dark">Driver</th>
for ($i=0; $i < count($driver_kms) ; $i++)
{
if ($driver_kms[$i]->name !='')
{
<td><?=$driver_kms[$i]->name?></td>
}
}
</tr>
<tr>
<th>Kms</th>
for ($i=0; $i < count($driver_kms) ; $i++)
{
if ($driver_kms[$i]->name !='')
{
<td><?=$driver_kms[$i]->total_kms?></td>
}
}
</tr>
</tbody>
解决方案
在单个查询中获得预期结果,例如:
SELECT U.name, SUM(R.meters)
FROM users U, reservations R
WHERE U.id = R.driver_id
ORDER BY SUM(R.meters) DESC
LIMIT 3
或者
订购您的数组,arsort($driver_kms)
然后将您的 for 循环限制为 3 个元素for ($i = 0; $i < 3; $i++) { ...
推荐阅读
- github - github - 查找具有空描述的拉取请求
- azure-ad-b2c - 身份验证与授权?
- python - PyQt5 弯曲 QSlider
- angular - 无法再使用 --reporters 选项启动 ng 测试
- javascript - 如何使用 moment.js 格式化未来的日期和时间?
- python - Pandas cumsum 与增长率
- npm - NPM 说缺少对等依赖项但已安装软件包
- javascript - 悬停/鼠标悬停时播放音频,可能没有 jQuery 吗?
- node.js - 在 Angular SPA 客户端访问经过身份验证的用户
- php - 如何获取给定文件夹中所有图像的某些图像属性,并使用数据构建对象?