PHP 8.4.2 Released!

A classe ParentIterator

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

Introdução

Este FilterIterator estendido permite uma iteração recursiva usando RecursiveIteratorIterator que mostra apenas os elementos que têm filhos.

Índice

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
3
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
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);
?>
To Top