$newsdata = $mysqli->query($sql = "SELECT `id`, `title`, `date` FROM `news` ORDER BY `date` DESC");
foreach ( $newsdata as $news ) {
$year = date('Y', $news['date']);
$month = date('F', $news['date']);
$nav[$year][$month][$news['id']] = $news['title'];
}
<ul class="archive_year pad-top">
<?php foreach ( $nav as $k => $v ) { ?>
<li class="years"><?php echo $k ?>
<ul class="archive_month">
<?php
foreach ( $v as $k2 => $v2 ) {
?>
<li class="months"><i class="icon-caret-right"></i> <?php echo $k2.' ('.sizeof($v2).')' ?>
<ul class="archive_posts">
<?php
foreach ( $v2 as $k3 => $v3 ) {
?>
<li class="posts"><i class="icon-angle-right"></i><a href="#"><?php echo $v3 ?></a></li>
<?php
}
?>
</ul>
</li>
<?php
}
?>
</ul>
</li>
<?php
}
?>
</ul>