まって!この子たちも忘れないで><
ハッと気づいたら書いていた。後悔はしてない。
via. shin blog PHP 配列を回すならforかforeachか - Shin x blog
forとforeachだけがループじゃないよ><
PHPだとforeach便利すぎで忘れられてるけど、僕はwhileって美しいと思うんだ!><
ということでポインタdo〜whileを使ってポインタ遷移とSPL版
<?php $list = array(); $list[] = array('id' => 1, 'name' => 'hoge'); $list[] = array('id' => 2, 'name' => 'foo'); $list[] = array('id' => 3, 'name' => 'bar'); $current = current($list); do { echo $current['id'] . PHP_EOL; echo $current['name'] . PHP_EOL; } while ($current = next($list)); ?>
<?php $list = array(); $list[] = array('id' => 1, 'name' => 'hoge'); $list[] = array('id' => 2, 'name' => 'foo'); $list[] = array('id' => 3, 'name' => 'bar'); $listobj = new ArrayObject($list); $iterator = $listobj->getIterator(); do { $tmp = $iterator->current(); echo $tmp['id'] . PHP_EOL; echo $tmp['name'] . PHP_EOL; $iterator->next(); } while($iterator->valid()); ?>
ぶっちゃけdo〜while+ArrayIterator常用はガチ。前者はSPL知ってからはでんでん使ってない。
でも、こういう構造の時はどう見ても美しくもないしコーディング効率も悪いですねありがとうございました的な。