PHP数组Foreach Tittle

时间:2016-05-13 06:21:10

标签: php arrays loops foreach

我正在尝试向数字显示一些页眉和页脚,数组包含日期,我想要的是这些是按日期分隔的。

理想只会声明一个页眉和一个页脚。

我需要做2个foreach?或者任何人有任何想法?,thx

<?php 
$datos = array(
  array("date" => "2018"),

  array("date" => "2016"),
  array("date" => "2016"),

  array("date" => "2015"),
  array("date" => "2015"),
  array("date" => "2015"),
  array("date" => "2015"),      

  array("date" => "2014"),
  array("date" => "2014"),

  array("date" => "2005"),
);

echo "<pre>";
print_r($datos);
echo "</pre>";

echo "HEADER TOP<br>";
foreach ($datos as $row) {
  if ($datos['date'] != @$lezte_jahr){
    echo "FOOTER <br><br><br> HEADER ";
  }
  echo $row['date'] . "  ";
  $lezte_jahr = $row['date'];
}
echo "FOOTER TOP<br>";
?>

我喜欢结果,但我不知道如何XD

--a--
2018
--b--

--a--
2016
2016
--b--

--a--
2015
2015
2015
2015
--b--

--a--
2014
2014
--b--

--a--
2005
--b--

1 个答案:

答案 0 :(得分:2)

您可以简单地循环并存储最后一个回显日期,并将其与数组中的下一个日期进行比较。

<?php
$datos = array
  (
  array("date" => "2018"),

  array("date" => "2016"),
  array("date" => "2016"),

  array("date" => "2015"),
  array("date" => "2015"),
  array("date" => "2015"),
  array("date" => "2015"),      

  array("date" => "2014"),
  array("date" => "2014"),

  array("date" => "2005"),
  );

foreach($datos as $key => $dt) {
    if(isset($last) && $last != $dt['date'])
        echo '--b--' . PHP_EOL . '--a--' . PHP_EOL;
    if(!isset($last))
        echo '--a--'. PHP_EOL;

    echo $dt['date']. PHP_EOL;

    if($key == count($datos) -1)
        echo '--b--';

    $last = $dt['date'];
}  

演示:https://eval.in/570468