gpt4 book ai didi

php - 是否可以将一个数组的字段存储为一个新数组?

转载 作者:搜寻专家 更新时间:2023-10-31 21:46:49 25 4
gpt4 key购买 nike

在我的 CakePHP 应用程序中,我正在提取名为“时间表”的表格的结果。该表有一个 athlete_id 和一些比赛的分段时间。我需要对一名运动员的时间与另一名运动员的时间进行一些计算(例如,计算最快完成时间和最慢完成时间之间的差异)。

我认为最好的方法是将每个运动员的“完成”存储在一个新数组中,然后在其上运行 min() 函数。对于我的生活,我无法让它工作......

您认为我是不是以错误的方式处理这个问题,还是我只是遗漏了什么?

foreach ($timesheet['Run'] as $run):
<tr<?php echo $class;?>>
<td><?php echo $run['athlete_id'];?></td>
<td><?php echo $run['start'];?></td>
<td><?php echo $run['split1'];?></td>
<td><?php echo $run['split2'];?></td>
<td><?php echo $run['split3'];?></td>
<td><?php echo $run['split4'];?></td>
<td><?php echo $run['split5'];?></td>
<td><?php echo $run['split6'];?></td>
<td><?php echo $run['finish'];?></td>
</tr>
endforeach

最佳答案

假设您正在从数据库中获取带有order by finish asc 的时间表,您可以这样做(为简洁起见省略拆分):

$fastest = $previous = $timesheet['Run'][0]['finish'];
foreach ($timesheet['Run'] as $run):
<tr>
<td><?php echo $run['athlete_id'];?></td>
<td><?php echo $run['finish'];?></td>
<td><?php echo $previous - $run['finish'];?></td>
<td><?php echo $fastest - $run['finish'];?></td>
</tr>
$previous = $run['finish'];
endforeach

这应该给出这样的行:

id | finished_in | to_previous  | to_best
1 | 120 | 0 | 0
2 | 121.5 | -1.5 | -1.5
3 | 121.8 | -0.3 | -1.8
4 | 122.6 | -0.8 | -2.6
...

另一种选择是将返回的数组包装到一个对象或一个 ArrayIterator 中,并在其中进行计算,封装 $fastest 和 $previous 以及您可能想要计算的任何其他内容。

关于php - 是否可以将一个数组的字段存储为一个新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com