SmartyやTwigといったテンプレートエンジンには、ループ中の状態を取れる便利な変数が用意されています。Twigのforだとloop.first, loop.lastなどです。今現在、ループの最初と最後での条件分岐を簡潔に書くことができます。 {% for d in data %} {% if loop.first %} <ul> {% endif %} <li>{{ d }}</li> {% if loop.last %} </ul> {% endif %} {% endfor %} 素のPHPのループ構文にこんなものはないので、ではどう書くのが綺麗なのか考えてみました。 $arr = range(1,4); for (end($arr),$last=key($arr),reset($arr),$first=key($arr); list($key,$val)=each($arr);
![素のPHPでループのfirstとlastを判定する](https://cdn-ak-scissors.b.st-hatena.com/image/square/126e9c63960837b5815901e11e1f6c1303c17f2b/height=288;version=1;width=512/https%3A%2F%2Fblog.seesaa.jp%2Fimg%2Fogp_logo.png)