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

从 JSON 扫描日期并根据日期打印特定内容

从 JSON 扫描日期并根据日期打印特定内容

PHP
慕虎7371278 2022-08-05 16:38:51
我有一个php代码,如下所示:Php 代码:<?php    the_title('<h1 class="position">', '</h1>');    echo '<span class="data">' .date('yy-m-d').  '</span>'; // Line B    echo '<span class="part">Sitting Day</span>';  // Line C?>上面的php代码(B行和C行)打印以下内容:我在C行使用坐着的日子(只是为了好玩),但它应该打印下面的JSON中的内容:JSON:{    "position_day": ["2020-01-15", "2020-01-16", "2020-01-17"],    "proc_no": ["no", "yes", "no"]}编辑 1:我不控制 JSON。JSON 中的值通过 UI 传递。问题陈述:我想知道我应该在上面的php代码中进行哪些更改(特别是在B行和C行),以便B行查找/匹配/扫描上面JSON中的日期,并根据JSON中的日期在C行打印内容。案例1:如果今天的日期是 B 行的 2020-01-15,而 JSON 中对应的日期为 no,那么它应该在 C 行显示“不是坐着的日子”。案例2:如果今天的日期是 B 行的 2020-01-16,而 JSON 中相应日期的日期为 yes,那么它应该在 C 行显示“坐着日”。案例3:如果今天的日期是 B 行的 2020-01-22,并且该特定日期的 JSON 中没有任何内容,则它应该在 C 行显示空白/无。
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

根据您的描述,以下是更改:


<?php

if (file_exists('feeds/ptp-ess_landing_house.json')) {

    $data_house = json_decode(file_get_contents('feeds/ptp-ess_landing_house.json'));

}


// $strdate = strtotime('2020-01-17');

// $date = date("Y-m-d", $strdate);


$date = date("Y-m-d");

$answer_prefix = "Not a ";


$sitting_day_str = "Sitting Day";

?>

<span class="current-date"><?php echo $date ?></span>

<?php foreach( $data_house->house_sitting_date as $key=>$val) {

  if($date === $val && $data_house->house_sitting_date_yes_no[$key] === "yes") {

    $answer_prefix = "";

    break;

  }

}

?>

<?php if(in_array($date, $data_house->house_sitting_date)) {?>

  <span class="current-date-answer"><?php echo $answer_prefix . $sitting_day_str ?></span>

<?php } ?>

注意:通过在函数中使用它可以更干净,但是我将留给您,因为您几乎没有提供有关您用作框架/ CMS的信息。


查看完整回答
反对 回复 2022-08-05
?
不负相思意

TA贡献1777条经验 获得超10个赞

这是通过跟踪我们正在循环的索引()并将其用于两个数组来实现的。这里唯一的问题是,如果其中一个数组的大小与另一个数组不同,在这种情况下,您将遇到错误。$i


代码不能保证运行 - 我现在无法访问PHP环境 - 但我希望您可以进行任何必要的小调试以获得有效的解决方案。


<?php

$data_house = json_decode(file_get_contents('feeds/ptp-ess_landing_house.json'));


for($i = 0; $i < count($data_house['house_sitting_date']; $i++) {

?>

  <span class="current-date"> <?php echo date('yy-m-d', $data_house['house_sitting_data'][$i]).</span>

  <span class="current-date-answer"><?php $data_house['house_sitting_date_yes_no'][$i] == 'yes' ? 'Sitting Day' : 'Not a Sitting Day' ?></span>

<?php

}

?>


查看完整回答
反对 回复 2022-08-05
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

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