我有一个包含字符串和数值的数组,在使用此代码时,我一直得到最高的字符串值,如何只从数组中获取数值最大值?
$maxprice = max($textpieces);
我也试过了,但这只是返回数组中键的数量
$maxprice = max(array_search($textpieces));
感谢您的帮助!我看了,但这里的max函数没有给出任何信息http://php.net/manual/en/function.max.php
我也看过这个解决方案Find highest max() of mixed array但是可以在不构建自定义函数的情况下获得它吗?
答案 0 :(得分:4)
$maxprice = max(array_filter($textpieces, 'is_numeric'));
它首先只过滤包含数字的条目(整数),然后从中提取max()
以下解决方案:
$max = array_reduce($textpieces, function($max, $i) {
if (is_numeric($i) && $i > $max) {
return $i;
}
return $max;
});
var_dump($max);
可能会有更多的性能(从CPU和内存的角度来看),但也更复杂。