March 3, 2014

PHPのイテレータに関するメモ

PHPの配列は、foreach文やfor文で処理することが多いですが、イテレータを用いて、1つずつ進めながら処理することもできます。
http://php.net/manual/ja/class.iterator.php

以下、簡単な例です。
<?php

$array = ['a' => 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D'];

reset($array); // おまじない

// current()は現在地の値、key()は現在地のキーを返す
echo current($array); // A
echo key($array); // a

// next()は、現在地を一つ進めて、その値を返す
echo next($array); // B
echo key($array); // b

// prev()は、現在地を一つ戻して、その値を返す
echo prev($array); // A
echo key($array); // a

// end()は、現在地を最後まで進めて、その値を返す
echo end($array); // D
echo key($array); // d

// reset()は、現在地を最初に戻して、その値を返す
echo reset($array); // A
echo key($array); // a

// each()は、現在地の要素を返して、現在地を一つ進める
list($k, $v) = each($array);
echo $k, $v; // aA

list($k, $v) = each($array);
echo $k, $v; // bB

No comments:

Post a Comment