如果 else 语句无法按照我在 PHP 中想要的方式工作


if else statement not working according to the way i want in php

我有以下代码

<?php  
foreach($record as $rec) {
    $dates = date('d-M-Y');
    $month_year = date('m-Y');
    if (($rec['dates'] == $dates && $rec['eid'] == $uid)) {
        $today = $rec['amount'];
    }
    if (($rec['dates']  == $month_year  && $rec['eid'] == $uid )) {
        $monthlysale = $rec['amount'];
    }
}
?>

我正在使用foreach循环,我的记录数组具有以下结构

Array
  (
   [0] => Array
    (
        [amount] => 80
        [dates] => 12-Mar-2014
        [eid] => 63
    )
 [1] => Array
    (
        [amount] => 80
        [dates] => 12-Mar-2015
        [eid] => 63
    )
[2] => Array
    (
        [amount] => 380
        [dates] => 13-Mar-2015
        [eid] => 63
    )
[3] => Array
    (
        [amount] => 160
        [dates] => 14-Mar-2015
        [eid] => 63
    )
[4] => Array
    (
        [amount] => 80
        [dates] => 03-2014
        [eid] => 63
    )
[5] => Array
    (
        [amount] => 620
        [dates] => 03-2015
        [eid] => 63
    )

我正在应用 if 条件来检查我从数组 $rec['dates'] 获得的日期是否等于$dates变量中的今天日期,但如果今天的日期与数组中的日期不匹配,这里会出现问题,那么变量$today变得未定义,因为没有与该日期对应的金额,因为如果没有日期,那么就没有金额,我不知道如何制作foreach 循环中的条件使 $today=0 如果 $rec['dates'](来自数组的日期)不等于今天的日期,第二种情况是,如果有日期匹配,那么如果我应用 else 条件来定义 $today=0,那么只有其他部分提前工作.thanx

在 foreach 循环之前将两个变量定义为默认值(零)。

$today = 0;
$monthlysale = 0;
foreach (...) {
    ...
}
// here both variables are defined, you can work with them.