我有一个像这样的数组:
array (0 => array ( 'id' => '20110209172713', 'Date' => '2011-02-09', 'Weight' => '200', ), 1 => array ( 'id' => '20110209172747', 'Date' => '2011-02-09', 'Weight' => '180', ), 2 => array ( 'id' => '20110209172827', 'Date' => '2011-02-09', 'Weight' => '175', ), 3 => array ( 'id' => '20110211204433', 'Date' => '2011-02-11', 'Weight' => '195', ), )
我需要提取最小和最大的权重值。在这个例子中
$ min_value = 175
$ max_value = 200
有什么帮助吗?谢谢 !
选项1. 首先,您映射该数组以获取这些数字(而不是全部详细信息):
$numbers = array_column($array, 'weight')
然后得到最小和最大:
$min = min($numbers); $max = max($numbers);
选项2。 (仅当您没有PHP 5.5或更高版本时)与选项1相同,但要选择值,请使用array_map:
array_map
$numbers = array_map(function($details) { return $details['Weight']; }, $array);
选项3。
选项4。 如果您只需要一个最小值或最大值,则array_reduce()可能会更快:
array_reduce()
$min = array_reduce($array, function($min, $details) { return min($min, $details['weight']); }, PHP_INT_MAX);
这会执行更多min()的操作,但是速度非常快。该PHP_INT_MAX是具有高启动,并得到越来越低。您可以这样做$max,但您将从0或开始-PHP_INT_MAX。
min()
PHP_INT_MAX
$max
0
-PHP_INT_MAX