所有示例都假定这是对象属性的名称,如示例中所示:$propvalue
function max_attribute_in_array($array, $prop) {
return max(array_map(function($o) use($prop) {
return $o->$prop;
},
$array));
}
-
array_map获取每个数组元素,并将对象的属性返回到新数组中
- 然后只返回该数组上的结果
max
为了好玩,在这里你可以传入或任何东西对数组作为第三个参数进行操作:maxmin
function calc_attribute_in_array($array, $prop, $func) {
$result = array_map(function($o) use($prop) {
return $o->$prop;
},
$array);
if(function_exists($func)) {
return $func($result);
}
return false;
}
$max = calc_attribute_in_array($data_points, 'value', 'max');
$min = calc_attribute_in_array($data_points, 'value', 'min');
如果使用 PHP >= 7,则适用于对象:array_column
function max_attribute_in_array($array, $prop) {
return max(array_column($array, $prop));
}
以下是Mark Baker的评论:array_reduce
$result = array_reduce(function($carry, $o) use($prop) {
$carry = max($carry, $o->$prop);
return $carry;
}, $array, -PHP_INT_MAX);