猿问

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

我有一个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 行显示空白/无。


慕虎7371278
浏览 123回答 2
2回答

守着一只汪

根据您的描述,以下是更改:<?phpif (file_exists('feeds/ptp-ess_landing_house.json')) {&nbsp; &nbsp; $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) {&nbsp; if($date === $val && $data_house->house_sitting_date_yes_no[$key] === "yes") {&nbsp; &nbsp; $answer_prefix = "";&nbsp; &nbsp; break;&nbsp; }}?><?php if(in_array($date, $data_house->house_sitting_date)) {?>&nbsp; <span class="current-date-answer"><?php echo $answer_prefix . $sitting_day_str ?></span><?php } ?>注意:通过在函数中使用它可以更干净,但是我将留给您,因为您几乎没有提供有关您用作框架/ CMS的信息。

不负相思意

这是通过跟踪我们正在循环的索引()并将其用于两个数组来实现的。这里唯一的问题是,如果其中一个数组的大小与另一个数组不同,在这种情况下,您将遇到错误。$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++) {?>&nbsp; <span class="current-date"> <?php echo date('yy-m-d', $data_house['house_sitting_data'][$i]).</span>&nbsp; <span class="current-date-answer"><?php $data_house['house_sitting_date_yes_no'][$i] == 'yes' ? 'Sitting Day' : 'Not a Sitting Day' ?></span><?php}?>
随时随地看视频慕课网APP
我要回答