PHP 8.4.1 Released!

La classe ParentIterator

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

Introduction

Ce sous-type de FilterIterator permet la récursivité au moyen de RecursiveIteratorIterator et il ne montre alors que les éléments ayant des enfants.

Sommaire

add a note

User Contributed Notes 2 notes

up
4
Anonymous
12 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);
?>
up
1
dn dot permyakov at gmail dot com
5 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
To Top