排序输出结果为html

时间:2018-01-26 22:48:51

标签: php arrays sorting

有问题,差不多20个小时没有睡觉) 排列数组输出结果,一切都很好,但是......

以下是数组的解析代码:

$html = '';
foreach ($nposts as $post){ 

if ($post['post_date'] != $last_date)
    {
    $html .= '<h3>'.$post['post_date'].'</h3>' ;
    } 

 $html .= '<div>id: ' . $post['ID'] . ' ' . $post['title'] . '</div><br>';
 $last_date = $post['post_date'];

};
echo $html;

结果,我得到了这个:

<h3>Wednesday 24 January 2018</h3>
<div>id: 1475 Title</div>
<br>
<div>id: 1455 Title</div>
<br>

<h3>Tuesday 23 January 2018</h3>
<div>id: 1388 Title</div>
<br>
<div>id: 1358 Title</div>
<br>
<div>id: 1315 Title</div>
<br>
<div>id: 1219 Title</div>
<br>
<div>id: 1198 Title</div>
<br>

<h3>Monday 22 January 2018</h3>
<div>id: 1063 Title</div>
<br>
<div>id: 996 Title</div>
<br>

<h3>Wednesday 01 January 2014</h3>
<div>id: 959 Title</div>
<br>

有点不是我想要的东西

我想得到这个:

单独列出日期,以及适用于此日期的所有日期。日期作为标题。 例如,作为网站上的新闻。

2018年1月22日

新闻1 新闻2 新闻3

23.012018

新闻1 新闻2

<div class="one">   
<h3>Wednesday 24 January 2018</h3>
        <div class="two">id: 1475 Title</div>

        <div class="two">id: 1455 Title</div>

</div>

<div class="one">   
    <h3>Tuesday 23 January 2018</h3>
        <div class="two">id: 1388 Title</div>

        <div class="two">id: 1358 Title</div>

        <div class="two">id: 1315 Title</div>

        <div class="two">id: 1219 Title</div>

        <div class="two">id: 1198 Title</div>>

</div>

    ......

帮助,我已经太累了

1 个答案:

答案 0 :(得分:1)

在一个循环中执行此操作有点复杂,但关键是要知道何时应关闭/打开标记<div class="one">

$html = '';
$last_date = '';

foreach ($nposts as $post) { 

    if ($post['post_date'] != $last_date) {

        $html .= $last_date !== '' ? '</div>' : '';
        $html .= '<div class="one">';
        $html .= '<h3>'.$post['post_date'].'</h3>';

    }

    $html .= '<div>id: ' . $post['ID'] . ' ' . $post['title'] . '</div>';

    $last_date = $post['post_date'];
}

$html .= '</div>';

echo $html;

工作演示Here