PHP数组Foreach标题


PHP Array Foreach Tittle

我试图将一些页眉和页脚显示为数字,数组中包含日期,我想要的是用日期分隔。

理想情况下只声明一个页眉和一个页脚。

我需要做两个前臂??或者有人知道吗?,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--

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

<?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