微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个格式如下:

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'));

要返回min和max的嵌套数组:

$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().

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐