Re: Recursive Iteration over a collection of objects

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Lidstone schreef:
Hi

I am getting myself quite confused while trying to use SPL to recursively iterate through a collection of objects, and any help would be greatly appreciated!

My collection of objects is contained in a class (which I frequently use to iterate through objects stored in an array in the class), and I think my hasChildren() and getChildren() methods are working ok, but I am unable to make it recursive.

I am particularly confused by where I have to use RecursiveIteratorIterator (do I have to at all?),

something like:

$c = new Categories;
$c->loadAll();

foreach (new RecursiveIteratorIterator($c) as $item)
	var_dump($item);


and the getIterator() method (again, do I need it and why?). Am I going about this totally the wrong way to start with?

I have tried to summarise my code below. Sorry for the long post, and thanks again.

David


====== Script... ==========

$categories = new RecursiveIteratorIterator(new Categories);
$categories->loadAll();

foreach ($categories as $category) {
    echo 'ID: ' . $category->getID();
    echo 'Level: ' . $category->getLevel();
}


======= classes... =========

abstract class ObjCollection implements RecursiveIterator {
    // class stores objects in an array
    public $objs = array();
    public function current();
    public function hasChildren();
    // etc etc
}


class Categories extends ObjCollection {
    // concrete class which loads the Category objects into
    // the ObjCollection array
    public function loadAll() {// ...load Category classes
                               // into parent:: !}
}


class Category {
    private $id;
    private $level
    public function getID() {return $this->id;}
    public function getLevel() {return $this->level;}
}






--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux