Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

find max() of specific multidimensional array value in php

See array for example: here

Basically, I want to find the max() for array[]['time'] in that array. I can figure it out if I loop through it, but I was hoping there was a more elegant solution.

like image 268
S16 Avatar asked Dec 21 '22 16:12

S16


1 Answers

Think array_reduce if you want to compute some single value iteratively over an array:

$max = array_reduce($array, function($a, $b) { 
  return $a > $b['time'] ? $a : $b['time']; 
} );

Or you could make use of a utility function like:

function array_col(array $a, $x)
{
  return array_map(function($a) use ($x) { return $a[$x]; }, $a);
}

which would be used like:

$max = max(array_col($array, 'time'));

It's more general purpose and could be used for other similar things.

like image 130
Matthew Avatar answered Dec 29 '22 03:12

Matthew