gpt4 book ai didi

php - 在二维数组中查找最小值/最大值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:22 25 4
gpt4 key购买 nike

我有一个格式如下的数组:

Array
(
[0] => Array
(
[DateTime] => "2013-05-22 14:21:01"
[Price] => 102.01
)
[1] => Array
(
[DateTime] => "2013-05-23 15:55:01"
[Price] => 52.60
)
[2] => Array
(
[DateTime] => "2013-05-25 14:23:01"
[Price] => 452.25
)
... etc
)

我需要找出 Price 的最低值和最高值。

min 只返回他们的键。我也试过 max(array_map("max", $data)) 但只返回 452.25

我是否必须使用 foreach 并手动执行?

最佳答案

这是获取最小值和最大值的一种方法:

$min = min(array_column($array, 'Price'));
$max = max(array_column($array, 'Price'));

返回最小值和最大值的嵌套数组:

$prices = array_column($array, 'Price');
$min_array = $array[array_search(min($prices), $prices)];
$max_array = $array[array_search(max($prices), $prices)];

你可以在一行中完成每一项,因为这看起来就像你想要做的:

$min_array = $array[array_search(min($prices = array_column($array, 'Price')), $prices)];
$max_array = $array[array_search(max($prices = array_column($array, 'Price')), $prices)];

array_column() 需要 PHP >= 5.5.0 或使用 PHP Implementation of array_column() .

使用 array_map() 获取最小值和最大值:

$min = min(array_map(function($a) { return $a['Price']; }, $array));
$max = max(array_map(function($a) { return $a['Price']; }, $array));

可能还有一个很好的 array_filter()array_reduce()

关于php - 在二维数组中查找最小值/最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28372241/

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