混合数组的MAX数值

时间:2013-05-13 00:42:51

标签: php

我有一个包含字符串和数值的数组,在使用此代码时,我一直得到最高的字符串值,如何只从数组中获取数值最大值?

$maxprice = max($textpieces);

我也试过了,但这只是返回数组中键的数量

 $maxprice = max(array_search($textpieces));

感谢您的帮助!我看了,但这里的max函数没有给出任何信息http://php.net/manual/en/function.max.php

我也看过这个解决方案Find highest max() of mixed array但是可以在不构建自定义函数的情况下获得它吗?

1 个答案:

答案 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和内存的角度来看),但也更复杂。