PHP:如何调整max(array_filter)& min(array_filter)如果为空

时间:2017-01-25 15:20:01

标签: php arrays if-statement

我使用compact创建了一个数组:

$rank_month = compact('jan','feb','mar'); 像这样,数据将使用查询获取,因为数据有时会为空,数据将是数字。 然后我使用max(array_filter) and min(array_filter)获取数组中的最高和最低,但当查询为空时我得到了

  

错误:max():数组必须包含至少一个元素

     

错误:Min():数组必须包含至少一个元素

是否可以像以下一样对其进行调节:

     if(empty(max(array_filter('$rank_month')))){
        $high = ""; }
    else{
    $high = max(array_filter('$rank_month'
}

或者他们以任何方式解决此错误?即使数据是空的

感谢。

3 个答案:

答案 0 :(得分:3)

当您真正想要数组时,您正在传递font-size 字符串 array_filter是一个11个字符的字符串,它不是数组。

您希望确保将数组传递给'$rank_month'(以及array_filtermin)。

您还需要在调用max / min之前检查已过滤的数组的长度。

max

答案 1 :(得分:1)

简单地说错误是什么:$ rank_month是一个空数组 使用sizeofcount

if (sizeof($rank_month) > 1) {
    $high = max($rank_month);
} else {
   ...
}

或者

if (count($rank_month) > 1) {
     $high = max($rank_month);
 else {
  ...
}

答案 2 :(得分:0)

您需要检查Array是否为空,而不是max值是否为空。 您也不需要传递array_filter,数组本身应该可以工作。

if(empty($rank_month)){
    $high = ""; 
} else {
    $high = max($rank_month);
}