zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Funktion gibt Array nicht zurück

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 04.05.2008, 13:36
Benutzerbild von Schneemann
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.01.2006
Ort: Bochum
Beiträge: 268
Schneemann befindet sich auf einem aufstrebenden Ast
Standard Funktion gibt Array nicht zurück

Hi Leute

Wie kann man einen Array den man einer rekursiven Funktion übergibt wieder ausgeben?

Der Array "$structure" sieht so aus:
PHP-Code:
Array
(
  [
20] => Array
    (
      [
id] => 20
      
[name] => Root
      
[children] => Array
        (
          [
30] => Array
            (
              [
id] => 30
              
[name] => Primaten
              
[children] => Array
                (
                  [
18] => Array
                    (
                      [
id] => 18
                      
[name] => Halbaffen
                      
[children] => Array()
                    )
                  [
42] => Array
                    (
                      [
id] => 42
                      
[name] => Affen
                      
[children] => Array()
                    )
                )
            )
        )
    )

Die Funktion die ich mir geschrieben habe sieht so aus:
PHP-Code:
function rekursiv$array )
{
  foreach( 
$array as $key => $value )
  {
    if( 
is_array($value) )
    {
      if( 
count$value['children'] ) > )
      {
        
rekursiv$value['children'] );
      }
      else
      {
        unset( 
$value['children'] );
      }
    }
  }
  return;
}

rekursiv$structure );

print_r($structure); 


Gedachte hatte ich nun, leere Kinder ("children") zu entfernen und wenn diese nicht leer sind die Funktion noch einmal aufzurufen für die jeweiligen Kinder-Elemente.

Wieso gibt die Funktion $structure unverändert aus? Wo steckt bei dieser rekursiven Funktion der Fehler?
__________________
Gruß,
Peter
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 04.05.2008, 13:58
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 4.341
inta ist ein wunderbarer Anblickinta ist ein wunderbarer Anblickinta ist ein wunderbarer Anblickinta ist ein wunderbarer Anblickinta ist ein wunderbarer Anblickinta ist ein wunderbarer Anblickinta ist ein wunderbarer Anblick
Standard

Du bearbeitest in deiner Funktion eine Kopie deines Arrays. Entweder du gibst dein bearbeitetes Array als Wert zurück (return) und arbeitest damit weiter, oder du übergibst dein Array als Referenz. Wenn du es als Referenz übergibst, dann wird direkt auf dem Array gearbeitet, das kannst du dir vorstellen wie einen symbolischen Link auf Unixsystemen.

PHP: Funktionsparameter - Manual
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 04.05.2008, 14:12
Benutzerbild von Schneemann
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.01.2006
Ort: Bochum
Beiträge: 268
Schneemann befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich den Code so schreibe
PHP-Code:
function rekursiv( &$array )
{
  foreach( 
$array as $key => $value )
  {
    if( 
is_array($value) )
    {
      if( 
count$value['children'] ) > )
      {
        
rekursiv$value['children'] );
      }
      else
      {
        unset( 
$value['children'] );
      }
    }
  }
  return;
}

rekursiv$structure );

print_r($structure); 
kommt $structure unbearbeitet raus.
__________________
Gruß,
Peter
Mit Zitat antworten
  #4 (permalink)  
Alt 04.05.2008, 14:20
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.746
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

In mehreren Foren gleichzeitig dieselbe Frage zu stellen ist eigentlich verpönt. Problem mit rekursiver Funktion: Array wird nicht zurückgegeben - PHP @ tutorials.de
__________________
Markus Wulftange
Mit Zitat antworten
  #5 (permalink)  
Alt 04.05.2008, 14:55
Benutzerbild von hemfrie
Administrator
XHTMLforum-Kenner
 
Registriert seit: 18.12.2003
Ort: Düsseldorf
Beiträge: 2.684
hemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannt
Standard

Zitat:
Zitat von Gumbo Beitrag anzeigen
In mehreren Foren gleichzeitig dieselbe Frage zu stellen ist eigentlich verpönt. Problem mit rekursiver Funktion: Array wird nicht zurückgegeben - PHP @ tutorials.de
Ich vermute mal, dass dieser Hinweis nicht ankommen wird.

http://xhtmlforum.de/44620-formulari...tml#post325812

http://xhtmlforum.de/43655-gibt-es-a...tml#post319364
__________________
http://twitter.com/xhtmlforum - XHTMLforum - Infos bei Serverausfall, Wartungsarbeiten etc.
Mit Zitat antworten
  #6 (permalink)  
Alt 04.05.2008, 15:33
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.774
mantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblick
Standard

siehe
Zitat:
Zitat von Gumbo Beitrag anzeigen
In mehreren Foren gleichzeitig dieselbe Frage zu stellen ist eigentlich verpönt.
Tja, Schade, denn eigentlich ist es völlig klar, was hier passiert und warum es nicht funktioniert.

Wenn das nicht der erste Fall wäre, würde ich glatt auf das Problem eingehen.

Evtl. überdenkst Du Deine Einstellung nochmal.
Mit Zitat antworten
  #7 (permalink)  
Alt 04.05.2008, 18:28
Benutzerbild von Schneemann
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.01.2006
Ort: Bochum
Beiträge: 268
Schneemann befindet sich auf einem aufstrebenden Ast
Standard

<ironie>Ich bin abgrundtief böse und habe nur schlechte Absichten</ironie>

__________________
Gruß,
Peter
Mit Zitat antworten
  #8 (permalink)  
Alt 04.05.2008, 18:37
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.774
mantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblickmantiz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Schneemann Beitrag anzeigen
<ironie>Ich bin abgrundtief böse und habe nur schlechte Absichten</ironie>

Damit hat das nichts zu tun, und ich denke das weißt Du auch.

Nur so als Tip, wo ich gerade sowieso schon antworte:

Dein $value ist ebenfalls nur eine Kopie.
Mit Zitat antworten
  #9 (permalink)  
Alt 05.05.2008, 01:14
Benutzerbild von Schneemann
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.01.2006
Ort: Bochum
Beiträge: 268
Schneemann befindet sich auf einem aufstrebenden Ast
Standard

Es hat alles geklappt, nun muss ich (nur) noch per JavaScript die neu aufklappenden Knoten auslesen und an der richtigen Stelle einfügen. Das wird nochmal ein echtes Stück Arbeit.
__________________
Gruß,
Peter
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ausgabe geschieht nur einmal Benutzername Serveradministration und serverseitige Scripte 0 12.05.2011 15:59
URL mit XML in (X)HTML ausgeben blockmarc (X)HTML 17 05.06.2010 16:39
PHP: zweidim. Array mit eindimensionaler Struktur in Eindim. Array umwandeln? braindead Serveradministration und serverseitige Scripte 4 08.07.2008 13:31
Funktion auf Array anwenden und auf Arrayelemente zugreifen Al3x0r Javascript & Ajax 1 26.12.2006 01:33
[PHP] Funktion zum Optimieren von CSS Floele Serveradministration und serverseitige Scripte 2 13.08.2005 10:31

LinkBacks (?)
LinkBack to this Thread: http://xhtmlforum.de/51679-funktion-gibt-array-nicht-zur-ck.html
Erstellt von For Type Datum
Problem mit rekursiver Funktion: Array wird nicht zurückgegeben - PHP @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe This thread Pingback 04.05.2008 14:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:00 Uhr.