//AppendIterator按顺序迭代访问几个不同的迭代器
$array_a = new ArrayIterator(array('a','b','c'));
$array_b = new ArrayIterator(array('d','e','f'));
$it = new AppendIterator();
$it->append($array_b);//通过append方法将迭代器对象添加到AppendIterator对象中
$it->append($array_a);
foreach ($it as $key => $value) {
echo $key . ":" . $value . "\n";
}
//MultipleIterator用于把多个Iterator里面的数据组合成为一个整体来访问
$idIter = new ArrayIterator(array('01','02','03'));
$nameIter = new ArrayIterator(array('张三','李四','王五'));
$ageIter = new ArrayIterator(array('22','23','24'));
$mit = new MultipleIterator(MultipleIterator::MIT_KEYS_ASSOC);
$mit->attachIterator($idIter,"ID");
$mit->attachIterator($nameIter,"NAME");
$mit->attachIterator($ageIter,"AGE");
foreach ($mit as $value) {
print_r($value);
}
//FilesystemIterator能够遍历文件系统
$it = new FilesystemIterator('.');
foreach ($it as $finfo) {
printf("%s\t%s\t%8s\t%s\n",
date("Y-m-d H:i:s",$finfo->getMTime()),
$finfo->isDir()?"<DIR>":"",
number_format($finfo->getSize()),
$finfo->getFileName()
);
}