PHP 8.5.0 Released!

The ParentIterator class

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

This extended FilterIterator allows a recursive iteration using RecursiveIteratorIterator that only shows those elements which have children.

Table of Contents

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 2 notes

up
3
dn dot permyakov at gmail dot com
6 years ago
Easy example for understanding:
<?php
$iterator = new ParentIterator(
 new RecursiveArrayIterator(
 array(array(1, 2, 3), 'A', 'B', 'C')
 )
);
foreach ($iterator as $recursive) {
 foreach ($recursive as $value) {
 echo $value . PHP_EOL;
 }
}
?>

1
2
3
up
3
Anonymous
13 years ago
ParentIterator is just a RecursiveFilterIterator whos accept() method calls the RecursiveFilterIterator->hasChildren() method to filter itself.
Basically, it filters out leaf nodes. For example
This would yield all files and directories
<?php
$rdi = new RecursiveDirectoryIterator(__DIR__);
$iter = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::CHILD_FIRST);
?>

wrapping that in a ParentIterator would filter it down to just directories
<?php
$rdi = new RecursiveDirectoryIterator(__DIR__);
$iter = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::CHILD_FIRST);
$dirsOnly = new ParentIterator($iter);
?>
+add a note

AltStyle によって変換されたページ (->オリジナル) /