note 106034 deleted from class.recursiveiterator by salathe

From: Date: Thu, 13 Oct 2016 08:17:49 +0000
Subject: note 106034 deleted from class.recursiveiterator by salathe
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-206872@lists.php.net to get a copy of this message
Note Submitter: andresdzphp at php dot net ---- RecursiveIterator example: <?php class MyRecursiveIterator implements RecursiveIterator { private $_data; private $_position = 0; public function __construct(array $data) { $this->_data = $data; } public function valid() { return isset($this->_data[$this->_position]); } public function hasChildren() { return is_array($this->_data[$this->_position]); } public function next() { $this->_position++; } public function current() { return $this->_data[$this->_position]; } public function getChildren() { echo '<pre>'; print_r($this->_data[$this->_position]); echo '</pre>'; } public function rewind() { $this->_position = 0; } public function key() { return $this->_position; } } $arr = array(0, 1, 2, 3, 4, 5 => array(10, 20, 30), 6, 7, 8, 9 => array(1, 2, 3)); $mri = new MyRecursiveIterator($arr); foreach ($mri as $c => $v) { if ($mri->hasChildren()) { echo "$c has children: <br />"; $mri->getChildren(); } else { echo "$v <br />"; } } ?> Result: 0 1 2 3 4 5 has children: Array ( [0] => 10 [1] => 20 [2] => 30 ) 6 7 8 9 has children: Array ( [0] => 1 [1] => 2 [2] => 3 )

« previous php.notes (#206872) next »