【发布时间】:2017-01-05 19:07:07
【问题描述】:
给定一个具有以下结构的数组:
$orders = [
0 => [
'volume' => 1926,
'lowPrice' => 1000.00,
'date' => 2016-12-29 00:45:23
],
1 => [
'volume' => 145,
'lowPrice' => 1009.99,
'date' => 2016-12-31 14:23:51
],
2 => [
'volume' => 19,
'lowPrice' => 985.99,
'date' => 2016-12-21 09:37:13
],
3 => [
'volume' => 2984,
'lowPrice' => 749.99,
'date' => 2017-01-01 19:37:22
],
// ...
]
我正在寻找最高效的方法来找到lowPrice 的最低值。 $orders 的大小很可能超过 500 个项目。对于给定的数组,结果如下:
$lowestPrice = $this->findLowestPrice($orders);
echo $lowestPrice; // 749.99
【问题讨论】:
-
您想在稍微变化的数据集上一次或多次找到最低值吗?如果只有一次:迭代(
O(n)),如果多次:保留某种数据结构,例如最小堆(O(n log n)用于更新,O(1)用于获取最小值)。 -
数据集
$orders来自哪里?数据库? json? xml? -
@RolandStarke 这就是我目前正在做的事情,但我觉得它效率低下。
-
@cmorrissey 数据集来自 json 源。
-
@EricS。您不会注意到性能差异。这里的所有解决方案都需要