Rekursives Array durchsuchen

sheaven

Mitglied
Hallo ich schon wieder.

Ich habe eine Funktion gebaut, die rekursive Arrays durchsucht.
Das ging auch.
Jetzt habe ich die aber etwas erweitert und jetzt geht nix mehr.
Und ich habe keinen blassen warum.
Ist in meinem Script ein Fehler den ich übersehen habe?

PHP:
function gruppe_thermik($teiln, $th_gruppe_akt, $kriterium) {
	$teiln_nummer = array();
	$alles = array();
	$teams = array();
	$kanaele = array();
	global $teiln_neu;
	global $alles;
	foreach($teiln as $key => $value) {
	
    	if(is_array($value)) {
        	gruppe_thermik($value, $th_gruppe_akt, $kriterium);			
		} else {			
			if (($key == $kriterium) && ($value == $th_gruppe_akt)) {			
				$teiln_nummer = each ($teiln_neu);
				if ($teiln_nummer <> '') {
					$startnummer = key($teiln_nummer[value]);
					$kanal = $teiln_nummer[value][$startnummer][kanal];
					$team = $teiln_nummer[value][$startnummer][team];
						$kanaele[$startnummer] = $kanal; 
						$teams[$startnummer] = $team; 
						$alles ['kanaele'] = $kanaele;
						$alles ['teams'] = $teams;
				}
			}
      	}
  	}
	return $alles;
}

Das Skript selber läuft aber nicht wie erwartet.
Er soll alle Leute suchen, die in der gleichen Gruppe sind (meist 1-10) und von denen dann das Team und den Kanal raussuchen.
Das macht er auch.
Aber fasst nicht alle in einem Array zusammen, so wie er soll, sondern anscheinend leert er das Array nach jedem Schleifendurchlauf.

Und das verstehe ich nicht.
Die Startnummern sind auch alle Unterschiedlich, sodass er die nicht überschreiben kann.

Wisst ihr abhilfe?
Oder generelle Ideenn?

Danke
 
Mir fiel grad auf, dass das Unsinn ist:

PHP:
$kanaele[$startnummer] = $kanal; 
                        $teams[$startnummer] = $team; 
                        $alles ['kanaele'] = $kanaele;
                        $alles ['teams'] = $teams;

So geht's kürzer und schneller:

PHP:
$alles ['kanaele'][$startnummer] = $kanal;
					$alles ['teams'][$startnummer] = $team;

Jetzt geht's auch. Aber ich verstehe nicht warum.

Ich hätte gedacht das sagt genau das selbe aus, nur umständlicher.

Wisst ihr warum?
 
Zurück