Get min and max value in PHP Array

后端 未结 9 1882
天涯浪人
天涯浪人 2020-11-30 00:36

I have an array like this:


array (0 => 
  array (
    \'id\' => \'20110209172713\',
    \'Date\' => \'2011-02-09\',
    \'Weight\' => \'200\',
  ),
  1 =>          


        
9条回答
  •  难免孤独
    2020-11-30 01:22

    Option 1. First you map the array to get those numbers (and not the full details):

    $numbers = array_column($array, 'weight')
    

    Then you get the min and max:

    $min = min($numbers);
    $max = max($numbers);
    

    Option 2. (Only if you don't have PHP 5.5 or better) The same as option 1, but to pluck the values, use array_map:

    $numbers = array_map(function($details) {
      return $details['Weight'];
    }, $array);
    

    Option 3.

    Option 4. If you only need a min OR max, array_reduce() might be faster:

    $min = array_reduce($array, function($min, $details) {
      return min($min, $details['weight']);
    }, PHP_INT_MAX);
    

    This does more min()s, but they're very fast. The PHP_INT_MAX is to start with a high, and get lower and lower. You could do the same for $max, but you'd start at 0, or -PHP_INT_MAX.

提交回复
热议问题