douxitao8170 2015-01-07 21:11
浏览 42
已采纳

在数组中查找匹配变量

I want to determine if $today is a known non-working day or holiday by comparing two arrays and report the result. I do not know what belongs in the if and elseif structures to compare if the variable within the array is a match to $today:

<?php
// Date & Time
$timeadjust = '-5 hours';
$today_long = date('l, d F Y', strtotime($timeadjust));
$today = date('m-d', strtotime($timeadjust));
$today_day_name = date('l', strtotime($timeadjust));
// Normal Non-Working Days
$saturday = 'Saturday';
$sunday = 'Sunday';
// 2015 Holidays
$new_years_day = '01-01';
$fourth_of_july = '07-04';
$thanksgiving = '11-26';
$thanksgiving_friday = '11-27';
$christmas_eve = '12-24';
$christmas = '12-25';
$new_years_eve = '12-31';
// Normal Non-Working Day Array
$no_work = array($saturday,$sunday);
// Holiday Array
$holiday = array($new_years_day,$fourth_of_july,$thanksgiving,$thanksgiving_friday,$christmas_eve,$christmas,$new_years_eve);
// Compare Today To Normal Non-Working Day & Holiday Arrays To Determine If Today Is Normal Non-Working Day Or Holiday
if ($today_day_name = $no_work) {$operating = 'CLOSED';}
elseif ($today = $holiday) {$operating = 'CLOSED';}
else {$operating = 'OPEN';}
// Display Result Of Comparison & Report Operating Status
echo '<h3>Today is&nbsp;'.$today_long.'.&nbsp;We are&nbsp;'.$operating.'&nbsp;today!</h3>';
?>
  • 写回答

1条回答 默认 最新

  • douluhaikao93943 2015-01-07 21:24
    关注

    For what you're doing you can use in_array() which will test if the value is in a selected array -

    // Compare Today To Normal Non-Working Day & Holiday Arrays To Determine If Today Is Normal Non-Working Day Or Holiday
    if (in_array($today_day_name, $no_work)) {
        $operating = 'CLOSED';
    } elseif (in_array($today, $holiday)) {
        $operating = 'CLOSED';
    } else {
        $operating = 'OPEN';
    }
    

    EXAMPLE

    In your original code you're also assigning instead of testing -

    if($foo = $bar) // one equals sign assigns
    if($foo == $bar) // two equals signs compares
    if($foo === $bar) // three equals signs tests for equivalency, does it match value and type?
    

    Because you were assigning your if statement would always evaluate to true.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条