我有以下格式的数组:
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()
或使用array_column()的PHP实现需要PHP> = 5.5.0 。
使用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()
为好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句