php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.06.2008, 12:45  
Benutzer
 
Registriert seit: 31.03.2005
Beiträge: 80
Anotherone
Standard Rekursive Funktion funktioniert lokal, aber nicht remote?

Ich habe folgendes Problem: Ich habe ein Array, das ca. 100 Arrays folgenden Aufbaus enthält:


Code:
Array
        (
            [cid] => 1000
            [pid] => 0
            [name] => Name
            [link] => http://localhost/mein_link.html
            [depth] => 0
        )
Wichtig sind cid (aktuelle ID) und pid (ID des Elternelements)

Dieses wird vorher mittels usort so sortiert, das die Elemente mit der pid=0 oben stehen und alphabetisch sortiert sind(Schritt 1). Ich habe desweiteren eine rekursive Funktion (Schritt 2), der ich den Kontrollwert, das Array sowie ein neu generiertes Array übergebe:

PHP-Code:
function sortiere_zwei($array) {
    
$new_array = array();
    
findAll(0$array$new_array);
    return 
$new_array;
}

function 
findAll($pid, &$array, &$new_array) {
    foreach (
$array as $data) {
        if (
$data['pid'] == $pid) {
            
$new_array[] = $data;
            
findAll($data['cid'], $array$new_array);
        }
    }

Sinn der ganzen Aktion ist, das $array in $new_array so zusammenzubauen, das die einzelnen Elemente ihren jeweiligen Eltern zugeordnet werden und eine sortierte, formatierte Ausgabe möglich ist. Dabei entsteht quasi ein Baum, der ca. 10 Hauptelemente mit verschiedenen Unterelementen enthält:

Code:
Hauptelement1
----Unterelement1
----Unterelement2
--------Unterelement2_1
Hauptelement2
----Unterelement3
.
.
.
Aber nun zu meinem Problem: Die Funktion läuft lokal (Ubuntu 8.04, PHP 5.2.4) perfekt, remote (Debian Etch, PHP 5.2.0) dagegen bricht sie nach dem ersten Durchlauf der Rekursion ab und liefert nur folgendes:

Code:
Hauptelement1
----Unterelement1
Ich habe die Schleife anstelle mit foreach auch schon mit

PHP-Code:
while(list(,$data) = each($array)) 
versucht, aber dann ist es lokal auch nur ein Zweig (remote auch) und eine for-Schleife ergibt ebenfalls das gekürzte Ergebnis.

Ich habe ja eine php.ini-Einstellung im Verdacht, aber welche? Oder übersehe ich was anderes?
Anotherone ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.06.2008, 08:11  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP-Code:
<?php
function RenderMenu(&$arrMenu$intPid 0) {
  foreach (
$arrMenu as $arrElement) {
    if (
$arrElement["pid"] == $intPid) {
      
RenderElemente($arrElement);
      
RenderMenu($arrMenu$arrElement["cid"]);
    }
  }
}
function 
RenderElement($arrElement) {
  
printf('[url="%s"]%s[/url]'$arrElement["link"], $arrElement["name"]);
}
?>
Wenn du das noch in eine Klasse packst wirds fast schon professionell


Warum dein Skript nicht klappt weiss ich auch nicht, uebers error_reporting() und Debuggen hast du leider noch nichts gesagt, weshalb ich nicht anfange zu raten
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
Lokal funktioniert alles -> auf Server fast nichts PsychoEagle Datenbanken 2 14.08.2006 08:43
index.php?cmd=alt funktioniert lokal nicht PHP Tipps 2007 4 11.11.2005 13:35
rand funktioniert nicht - eigene funktion? Madden PHP-Fortgeschrittene 22 31.08.2005 13:28
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
lösch funktion funktioniert nicht PHP Tipps 2005-2 13 22.07.2005 13:58
SQL Update funktioniert lokal aber auf dem Server nicht Datenbanken 1 22.07.2005 09:35
einfache mail funktion funktioniert nicht... PHP Tipps 2005 11 27.04.2005 20:25
Warum Funktioniert diese Funktion nich (mySQL) PHP Tipps 2005 10 04.03.2005 16:36
[Erledigt] Variablen in eine Funktion übernehmen PHP Tipps 2005 1 26.02.2005 17:19
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
Upload Script funktioniert lokal nicht?! TheTommynator PHP Tipps 2005 16 22.01.2005 23:42
[Erledigt] mail() Funktion funktioniert nach ServerBackup nicht mehr PHP-Fortgeschrittene 5 29.10.2004 21:29
Dateiupload durch includierte Funktion funktioniert nicht PHP-Fortgeschrittene 1 19.10.2004 08:26
Rekursive Funktion tut nicht richtig??? PHP-Fortgeschrittene 8 09.07.2004 15:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php 5.2 rekursion, php funktioniert remote nicht, php lokale functionen, forum rekursive funktion php, rekursive funktionen cmd, rekursion php, php rekursion fehler php.ini einstellung, warum funktioniert rekursiv, index.html remote und lokal, rekursive funktion lokal, funktioniert auch aber, php rekursives aufrufen funktion funktioniert nicht, wann funktioniert rekursion, php.ini local rekursiv, rekursive funktion, php new_array, lokale funktion rekursion, wie funktioniert rekursion

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.