2016-05-13 13 views
0

いくつかのヘッダーとフッターを数値に表示しようとしています。配列には日付が含まれています。これらは日付で区切られています。PHP配列Foreach Titles

理想的には、1つのヘッダーと1つのフッターしか宣言しません。

私は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-- 

答えて

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