[PHP] Rekursiver Funktionsaufruf

strolch00

redraft.de
ID: 155297
L
21 April 2006
1.684
72
Hi @all,

ich versuche gerade nen reskursiven Funtkionsaufruf zu basteln vobei ich immer wieder irgendwo einen Fehler einbaue bzw. schon zu beginn nen Fehler eingebaut habe.

Dies ist mein Array:
PHP:
Array
(
    [0] => Array
        (
            [class.lib] => Array
                (
                    [0] => class.whois.php
                    [1] => class.counter.php
                    [2] => class.tpl.php
                )

        )

    [1] => Array
        (
            [inc.lib] => Array
                (
                    [0] => config.php
                    [1] => functions_crons.php
                    [2] => debugg.lib.php
                )

        )

    [2] => Array
        (
            [de/inc] => Array
                (
                    [0] => api_db.php
                    [1] => api_script.php
                    [2] => api_secure.php
                    [3] => api_user.php
                    [4] => defines_de.php
                )

        )

)
Dies ist meine Funtkion:
PHP:
	function _Dir($_PATH)
	{
		$this->_foreach($_PATH);
echo "<pre>";print_r($this->_inc_array);echo "</pre>";
	}

	function _foreach($_p)
	{
		foreach($_p AS $p => $v)
		{
			if(is_array($v))
				$this->_foreach($v);
			else
				$this->_inc_array[] = $p.'/'.$v;
		}
	}
Diese Ausgabe will ich haben:
Array
(
[0] => verzeichnis/class.whois.php
[1] => verzeichnis/class.counter.php
[2] => verzeichnis/class.tpl.php
[3] => verzeichnis/config.php
[4] => verzeichnis/functions_crons.php
[5] => verzeichnis/debugg.lib.php
[6] => verzeichnis/api_db.php
[7] => verzeichnis/api_script.php
[8] => verzeichnis/api_secure.php
[9] => verzeichnis/api_user.php
[10] => verzeichnis/defines_de.php
)
Diese Ausgabe bekomme ich:
Array
(
[0] => 0/class.whois.php
[1] => 1/class.counter.php
[2] => 2/class.tpl.php
[3] => 0/config.php
[4] => 1/functions_crons.php
[5] => 2/debugg.lib.php
[6] => 0/api_db.php
[7] => 1/api_script.php
[8] => 2/api_secure.php
[9] => 3/api_user.php
[10] => 4/defines_de.php
)

Mein Denkfehler liegt ja jetzt wie ich es nochmal sehe darin das der key inc.lib weitere unterschlüssel hat. Muss ich das jetzt in der rekusriven funktion mit einem workarround und !is_int() lösen oder kann man es einfacher machen?

Danke schonmal