0

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

$maxprice = max($textpieces);

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

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

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

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

4

1 回答 1

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

于 2013-05-13T00:45:09.330 回答