为了账号安全,请及时绑定邮箱和手机立即绑定

值是否在 2 个数组键之间

值是否在 2 个数组键之间

PHP
茅侃侃 2023-03-11 15:51:40
我对 foreach 循环中的 if 语句有疑问。<?php$time_code = 2; $times = array(    '2' => '10:00',    '4' => '12:00',    '6' => '14:00',);foreach($times as $code => $time){    //if $code >= time_code && $time_code < the next array_key}?>我的意思是如果 $time_code = 2 echo 10:00 但如果 $time_code 是 4 或 5 echo 12:00。
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

假设您要检查键是否等于或等于 + 1,您可以检查条件以查看变量是否等于或等于 + 1。所以它看起来类似于以下......


假设我们有一个选择器,它允许我们以一小时为增量选择 24 小时制时间,而您想获取该时间的代码。因此,如果我们有一个数组,其中这些值设置为以 2 为增量,我们将编写条件来查看键是否等于或等于 + 1。


现在我们有一个像这样的 html 表单:


<form action="" method="post">

   <div>Choose a time 

      <select name="time_code" id="time_code">

        <option value="2">2:00</option>

        <option value="3">3:00</option>

        <option value="4">4:00</option>

        <option value="5">5:00</option>

        <option value="6">6:00</option>        

        <option value="7">7:00</option>

        <option value="8">8:00</option>

        <option value="9">9:00</option>

        <option value="10">10:00</option>

        <option value="11">11:00</option>

        <option value="12">12:00</option>

        <option value="13">13:00</option>

        <option value="14">14:00</option>

        <option value="15">15:00</option>

        <option value="16">16:00</option>        

        <option value="17">17:00</option>

        <option value="18">18:00</option>

        <option value="19">19:00</option>

        <option value="20">20:00</option>        

        <option value="21">21:00</option>

        <option value="22">22:00</option>

        <option value="23">23:00</option>

        <option value="24">24:00</option>


      </select>

   </div>

   <input type="submit" name="submit" value="submit">

</form>


我们获取发布值,然后使用如下 if 语句将条目与我们的数组进行比较:


$output = null;

// convert to integer for strict comparison or use == in conditional

$time_code = (int)$_POST['time_code']; 


$times = array(

    '0' => '2:00',

    '2' => '4:00',

    '4' => '6:00',

    '6' => '8:00',

    '8' => '10:00',

    '10' => '12:00',

    '12' => '14:00',

    '14' => '16:00',

    '16' => '18:00',

    '18' => '20:00',

    '20' => '22:00',

    '22' => '24:00'

);

$msg = null;

foreach($times as $code => $time){

  if($time_code === $code || $time_code === $code + 1){

    $msg = $time;

  }else{

      $msg = "error";

    }

}

if($msg === 'error'){

  $msg = "Sorry there is no time slot for that code, please check your entry!";

}

HTML:


<div>

  <?=$msg?>

</div>

输出:


5:00 selected will output -> CODE: 4

2:00 selected will output -> CODE: 2

17:00 selected will output -> CODE: 16

23:00 selected will output -> CODE: 22

24:00 selected will output -> CODE: 24

*因为我们在输入值方面控制了选择,错误永远不会触发...如果您使用文本输入或允许用户输入不在我们参数范围内的值的东西,那么错误可能会触发.


查看完整回答
反对 回复 2023-03-11
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信