获得foreach的最低日期

时间:2016-03-18 09:33:38

标签: php

我想从下面的每个日期获得最低日期。

foreach ($check_date AS $value) {
    if ($result[$i][$j]['date'] == $value['date'] ) {

        if ($value['date_type'] == '1') {
            $result[$i][$j]['value'] = -555;
        } else if ($value['date_type'] == '2') {
            $result[$i][$j]['value'] = -666;
        }

    }

    if ($j < $limit - 1 && $result[$i][$j + 1]['date'] == $value['date']  ) {
        print_r($result[$i][$j + 1]['date'] );
        if ($value['date_type'] == '1') {
            $result[$i][$j]['value'] = 0;
        } else if ($value['date_type'] == '2') {
            $result[$i][$j]['value'] = 0;
        }
    }
}

print_r($result[$i][$j + 1]['date'] );打印2016-03-212016-03-22。我想从这里得到2016-03-21。

如何实现这一点。

1 个答案:

答案 0 :(得分:1)

我认为您只想在使用print_r的地方使用最低日期。所以下面的代码就是针对这种情况。 您可以使用变量存储此最小日期,然后在if之前初始化它。并在每个循环上检查是否没有或更小。 所以代码应该是这样的:

$min_date = false;
foreach ($check_date AS $value) {
    if ($result[$i][$j]['date'] == $value['date'] ) {

        if ($value['date_type'] == '1') {
            $result[$i][$j]['value'] = -555;
        } else if ($value['date_type'] == '2') {
            $result[$i][$j]['value'] = -666;
        }

    }

    if ($j < $limit - 1 && $result[$i][$j + 1]['date'] == $value['date']  ) {
        if($min_date === false || $min_date > $result[$i][$j + 1]['date'] ) {
           $min_date = $result[$i][$j + 1]['date'];
        }
        print_r($result[$i][$j + 1]['date'] );
        if ($value['date_type'] == '1') {
            $result[$i][$j]['value'] = 0;
        } else if ($value['date_type'] == '2') {
            $result[$i][$j]['value'] = 0;
        }
    }
}
echo $min_date; // Here you will have the lowest date.