首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数组值(例如i++中的值)与数组中的键匹配

如何将数组值(例如i++中的值)与数组中的键匹配
EN

Stack Overflow用户
提问于 2016-08-12 04:50:57
回答 2查看 84关注 0票数 0

“”我正在试着得到这个输出。我有一个数据库表,在这里我节省了商店的营业时间和周一到周日的关门时间。我能够在浏览器上获得记录,但我试图按日期对日期进行排序。如果今天是星期五,那么星期五应该先显示出来,然后在一周的其余时间显示。守则是:

代码语言:javascript
复制
<?php

$wdays = array( 0 => "Monday" , 1 => "Tuesday",  2 => "Wednesday", 3 => "Thursday",  4 => "Friday", 5 => "Saturday", 6 => "Sunday");

$times = array(
   0 => date( $row_DetailRS1['monO'] ). " ". date( $row_DetailRS1['monC'] ),
   1 =>  date( $row_DetailRS1['tueO'] ) . " ". date( $row_DetailRS1['tueC'] ),
   2 =>  date( $row_DetailRS1['wedO'] ) . " ". date( $row_DetailRS1['wedC'] ),
   3 =>  date( $row_DetailRS1['thurO'] ) . " ". date( $row_DetailRS1['thurC'] ),
   4 =>  date( $row_DetailRS1['friO'] ) . " ". date( $row_DetailRS1['friC'] ),
   5 =>  date( $row_DetailRS1['satO'] ) . " ". date( $row_DetailRS1['satC'] ),
   6 =>  date( $row_DetailRS1['sunO'] ) . " ". date( $row_DetailRS1['sunC'] ) );

$combine = array_combine($wdays,  $times);

$html = "<table>";
$html .= "<tr><td>Sl.No</td><td>Days</td><td>Business Hours</td></tr>";
$i = 0;

while (true) {
    if ($i === 7) break;

    if ($datetime->format('N') === '7' && $i === 0) {
        $datetime->add(new \DateInterval('P1D'));
        continue;        
    }

    echo  $datetime->format('D') . $listItem[1]   . "<br/>";
    $listItem = array('<li>', '</li>');    

    $datetime->add(new \DateInterval('P1D'));
    $i++;

    echo "Value for i: ".$i. "and the day is: ". $datetime->format('D') . "<br/><br/><br/><br/> " ;

}

foreach ($combine as $wdays =>  $times):

    $html .= "<tr>";
    $html .= "<td>". $datetime->format('D')."</td>";
    $html .= "<td>".$i."</td>";
    $html .= "<td>".$times."</td>";
    $html .= "</tr>";

    $datetime->add(new \DateInterval('P1D'));
    $i++;

endforeach;
$html .= "</table>";
echo $html;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-16 13:04:50

我想我已经破解了

所以就这样说:-

代码语言:javascript
复制
 <?php
  $datetime = new \DateTime();

  $listItem = array('<li class="active">', '</li>');



  $times = array(
    1 => date( $row_DetailRS1['monO'] ). " ". date( $row_DetailRS1['monC'] ),
    2 =>  date( $row_DetailRS1['tueO'] ) . " ". date( $row_DetailRS1['tueC'] ),
    3 =>  date( $row_DetailRS1['wedO'] ) . " ". date( $row_DetailRS1['wedC'] ),
    4 =>  date( $row_DetailRS1['thurO'] ) . " ". date( $row_DetailRS1['thurC'] ),
    5 =>  date( $row_DetailRS1['friO'] ) . " ". date( $row_DetailRS1['friC'] ),
    6 =>  date( $row_DetailRS1['satO'] ) . " ". date( $row_DetailRS1['satC'] ),
    7 =>  date( $row_DetailRS1['sunO'] ) . " ". date( $row_DetailRS1['sunC'] ) );





  $html = "<table>";
  $html .= "<tr> <td>Days</td> <td> </td> <td></td>   <td>Business Hours</td></tr>";
  $i = 1;





  foreach ($times as $key => $value):



    $m = $datetime->format('N');


      $html .= "<tr>";
      $html .= "<td>". $datetime->format('D')."</td>";
      $html .= "<td>". " "."</td>";
      $html .= "<td>". " "."</td>";
      $html .= "<td>".$times[$m]."</td>";
      $html .= "</tr>";

      $datetime->add(new \DateInterval('P1D'));



      $i++;




  endforeach;
  $html .= "</table>";
  echo $html;



 ?>
票数 0
EN

Stack Overflow用户

发布于 2016-08-12 05:16:47

我不认为您想在$combine上使用foreach,您只想要这样的循环:(我认为这样会有用):

代码语言:javascript
复制
    for ($i=0;$i<7;$i++)
        $html .= "<tr>";
        $html .= "<td>". $datetime->format('D')."</td>";
        $html .= "<td>".$i."</td>";
        $html .= "<td>".$combine[$i]."</td>";
        $html .= "</tr>";

        $datetime->add(new \DateInterval('P1D'));
    endfor;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38910172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档