SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 03.06.2007, 21:13:30
Greenleon Greenleon ist offline
Anfänger
 
Registriert seit: Oct 2006
Beiträge: 110
Foreach in Rekursiver funktion - Hilfe

Hallo,

Ich habe eine Rekursive Funktion, in der ein Array mit foreach durchlaufen wird...
Mein Problem:
Bei jedem neuen aufruf der Funktion wird auch $key und $element neu definiert, dh. lauft das Foreach nicht mehr weiter, wenn die Durchlaeufe in den neuen Aufrufen in der Funktion durchgelaufen sind... gibt es eine Loesung?

Beispiel:

PHP-Code:
function funktion($i){
   foreach(
$array as $key => $element){
      [
Befehl mit $key und $element]
      if(
$i 0){
    
funktion($i-1);
      }
      [
Wichtiger Befehlder von $element abhaengt]
  }


Geändert von Greenleon (03.06.2007 um 21:15:21 Uhr)
Mit Zitat antworten
  #2  
Alt 03.06.2007, 21:30:29
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Foreach in Rekursiver funktion - Hilfe

ich hab zwar nicht ganz verstanden, was du willst, da dein skript unvollständig ist, aber vielleicht ist ja dein problem, dass foreach nur mit einer kopie des arrays arbeitet.

daher muss ein konstrukt herhalten, welches ungefähr so aussieht:

PHP-Code:
while(list($key$val) = each($array)) {
    echo 
"$key => $val<br>";

Mit Zitat antworten
  #3  
Alt 03.06.2007, 21:34:22
Greenleon Greenleon ist offline
Anfänger
 
Registriert seit: Oct 2006
Beiträge: 110
AW: Foreach in Rekursiver funktion - Hilfe

Das soll ich statt dem foreach nehmen?

Hmm hat auch nicht funktioniert. Vielleich ist das ja auch gar nicht mein Problem. Das ganze ist fuer ein verschachteltes Menu, welches in etwa so aussehen soll:

a>
aa>
ab>
aba>
abb>
ac>
a>

In dem Beispiel waere gerade ab aktiv!

Leider zeigt er es nur so an, macht also wenn er in der untersten Verschachtelung angekommen ist nicht weiter!:

a>
aa>
ab>
aba>
abb>

Geändert von Greenleon (03.06.2007 um 21:45:03 Uhr)
Mit Zitat antworten
  #4  
Alt 03.06.2007, 22:12:24
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Foreach in Rekursiver funktion - Hilfe

und wie sollen wir dir jetzt weiterhelfen?
Mit Zitat antworten
  #5  
Alt 11.06.2007, 21:24:29
Greenleon Greenleon ist offline
Anfänger
 
Registriert seit: Oct 2006
Beiträge: 110
AW: Foreach in Rekursiver funktion - Hilfe

Hier mal das Script:

PHP-Code:
#Objektarray erstellen
$objekte = array();

#Klasse definieren
class seite{
        
    var 
$name;    #a
    
var $bild;    #b
    
var $titel;    #c

    
var $ort '';    #o
    
    
function seite($a,$b,$c){
        
$this->name $a;
        
$this->bild $b;        
        
$this->titel $c;
        global 
$objekte;
        
$objekte[] = $a;
    }
    
    function 
zuordnen($o){
        global 
$objekte;
        
$this->ort $o;
    }
}


#Seiten hinzufuegen (0,1,2,3,4,5,etc.)
$haupt = new seite("haupt","kp","Haupt");

$hallo = new seite("hallo","kp","Hallo");
$du = new seite("du","kp","Du");
$sack = new seite("sack","kp","Sack");
$test = new seite("test","kp","test");


#Seiten zuordnen
$haupt->zuordnen('home');
$hallo->zuordnen('haupt');
$du->zuordnen('hallo');
$sack->zuordnen('hallo');
$test->zuordnen('haupt');

#Falls nicht uebergeben, view definieren
if(!isset($view)){
    
$view 0;
}

#Uebergeordnete Seiten erfassen
$i 0;
$parent[0] = ${$objekte[$view]}->name;
if(${
$objekte[$view]}->ort != ''){
    
    
$parent[$i+1] = ${$objekte[$view]}->ort;
    while(${
$parent[$i]}->ort != 'home'){
        
$i++;
        
$parent[$i] = ${$parent[$i-1]}->ort;
    }
}


#Funktion zur Darstellung des Menues
function menu($i){
    global 
$objekte;    
    global 
$parent;
    if(
$parent[1] != ''){
        global 
$objekte;    
        global 
$parent;
        
        echo 
"        <ul class=\"unterpunkt\">\n";    
        
        foreach(
$objekte as $key => $element){
            
            global ${
$element};
            if(${
$element}->name == $parent[$i-1]){
                
                echo 
"            <a href=\"index.php?view=".$key."\"><li>".${$element}->titel."</li></a>\n";
                if(
$i 0){
                    
menu($i-1);
                }
                
            }elseif(${
$element}->ort == $parent[$i]){
    
                echo 
"            <a href=\"index.php?view=".$key."\"><li>".${$element}->titel."</li></a>\n";
                
            }
        }
        echo 
"        </ul>\n";
    }

Wichtig ist nur die letzte Funktion, da der Rest funktioniert... wenn noch Fragen sind, bitte stellen!

Gruss leon

Geändert von Greenleon (15.06.2007 um 15:00:18 Uhr)
Mit Zitat antworten
  #6  
Alt 14.06.2007, 21:22:49
Greenleon Greenleon ist offline
Anfänger
 
Registriert seit: Oct 2006
Beiträge: 110
AW: Foreach in Rekursiver funktion - Hilfe

Ich schreib nochmal was dazu... ab morgen kann ich nichts mehr aendern... war fuer den Informatikunterricht, hab aber noch ne 1- bekommen. Also falls euch noch die Loesung einfaellt.

schaut es euch doch bitte mal an!
Das Problem hab ich ja geschildert, ist aber auch einfach zu bemerken.

Gruss Leon
Mit Zitat antworten
  #7  
Alt 14.06.2007, 23:54:34
Benutzerbild von z0iD
z0iD z0iD ist offline
Junior Member
 
Registriert seit: Mar 2006
Beiträge: 415
z0iD eine Nachricht über ICQ schicken
AW: Foreach in Rekursiver funktion - Hilfe

Was steht denn in $objekte alles drin?
Vielleicht mal nen var_dump?
__________________
Bitte sprich entweder deutsch oder englisch mit mir, aber nicht beides gleichzeitig.

----------
Bitte vor dem Fragen lesen: Wie man Fragen richtig stellt.
Mit Zitat antworten
  #8  
Alt 15.06.2007, 14:40:40
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Foreach in Rekursiver funktion - Hilfe

Zitat:
Zitat von Greenleon Beitrag anzeigen
war fuer den Informatikunterricht, hab aber noch ne 1- bekommen.
a. toll, daß man sich jetzt schon um die Hausaufgaben kümmern darf.
b. noch toller ist, daß Du für den Quark auch noch ne 1- bekommen hast.
Mit Zitat antworten
  #9  
Alt 15.06.2007, 14:59:15
Greenleon Greenleon ist offline
Anfänger
 
Registriert seit: Oct 2006
Beiträge: 110
AW: Foreach in Rekursiver funktion - Hilfe

Es geht mir nicht um die Note! Die 1 hatte ich sowieso sicher, es geht mir um das Script. Wenn du es schon als Quark bezeichnest, so sag doch bitte auch was genau so schlecht ist. Ich will doch nur lernen!

Gruss Leon

@z0iD: Sorry, Objekte ist ein Array mit allen Objektnamen der Klasse 'seite', hatte ich vergessen zu kopieren.

Also das ganze funktioniert super, bis auf die Tatsache, dass das Foreach nichts mehr macht, wenn die unterste Verschachtelung erreicht und abgeschlossen ist. (Sorry, bin noch nicht so vertraut mit der Fachsprache ;-) )

Geändert von Greenleon (15.06.2007 um 15:38:26 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Textfelder per Funktion überprüfen juergen HTML, CSS und JavaScript Help! 2 06.11.2006 01:43:28
mail funktion - Frage und Hilfe Th_Heide PHP Grundlagen 2 07.09.2006 23:59:21
Funktion aus Text heraus ausführen Heppi PHP Grundlagen 4 14.03.2006 20:04:21
Hilfe zu rekursiver Funktion benötigt... Trialrider PHP für Fortgeschrittene und Experten 6 13.02.2004 11:43:36
Hilfe SQL Funktion Mr.Burns PHP für Fortgeschrittene und Experten 24 12.07.2003 21:57:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:45:20 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt