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 (1) Themen-Optionen Ansicht
  1 links from elsewhere to this Post. Click to view. #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: 265
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: 3.134
inta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Menschinta ist ein sehr geschätzer Mensch
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: 265
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.749
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo 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.527
hemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig netthemfrie ist einfach richtig nett
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.168
mantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblick
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: 265
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.168
mantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblickmantiz ist ein Lichtblick
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: 265
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
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
PHP: zweidim. Array mit eindimensionaler Struktur in Eindim. Array umwandeln? braindead Serveradministration und serverseitige Scripte 4 08.07.2008 13:31
Mehrzeilige aber einspaltige MySQL selects direkt in einen eindimensionalem Array? braindead Serveradministration und serverseitige Scripte 3 07.01.2008 19:50
Funktion auf Array anwenden und auf Arrayelemente zugreifen Al3x0r Javascript & Ajax 1 26.12.2006 01:33
Rekursive Funktion - was stimmt hier nicht? Schneemann Serveradministration und serverseitige Scripte 4 13.10.2006 08:22
[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 +1. Es ist jetzt 12:21 Uhr.