 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
27.08.2005, 12:05
|
#1
|
|
TP-Veteran
Registriert seit: Sep 2004
|
rekursive funktion und return-wert
hallo,
hier mal 2 codebeispiele. das erste funktioniert wie gehabt nur beim zweiten bekomm ich immer nur den letzen wert angezeigt. wäre schön wenn mir das jemand verständlich erklären könnte und wie ich mit dem 2 beispiel dieselbe ausgabe wie bei 1. erreiche:
1.
PHP-Code:
function structure($id)
{
$ma = array(array("id" => "1","parent" => 0,"eh" => 156),
array("id" => "2","parent" => 1,"eh" => 96),
array("id" => "3","parent" => 2,"eh" => 57),
array("id" => "4","parent" => 3,"eh" => 20),);
if ($ma[$id]['parent'] > 0){
structure($ma[$id]['parent']-1);
}
$retval = str_repeat("-",$id).$ma[$id]["id"]."EH: ".$ma[$id]["eh"]."<br>";
echo $retval;
}
structure(3);
ausgabe:
1EH: 156
-2EH: 96
--3EH: 57
---4EH: 20
2. Beispiel:
PHP-Code:
function structure($id)
{
$ma = array(array("id" => "1","parent" => 0,"eh" => 156),
array("id" => "2","parent" => 1,"eh" => 96),
array("id" => "3","parent" => 2,"eh" => 57),
array("id" => "4","parent" => 3,"eh" => 20),);
$retval = "";
if ($ma[$id]['parent'] > 0){
structure($ma[$id]['parent']-1);
}
$retval .= str_repeat("-",$id).$ma[$id]["id"]."EH: ".$ma[$id]["eh"]."<br>";
return $retval;
}
$out = structure(3);
echo $out;
Ausgabe:
---4EH: 20 --> hier sollte es so wie bei 1. sein, nur ich versteh nicht warum es nicht so ist
Geändert von alexf812 (27.08.2005 um 12:08 Uhr).
|
|
|
27.08.2005, 12:49
|
#2
|
|
TP-Veteran
Registriert seit: Oct 2001
Ort: Oberau
|
hi,
du must die tieferen Rekursionen der $retval zuweisen:
PHP-Code:
...
if ($ma[$id]['parent'] > 0){
$retval .= structure($ma[$id]['parent']-1);
}
...
schönes we
|
|
|
27.08.2005, 15:36
|
#3
|
|
TP-Veteran
Registriert seit: Sep 2004
|
danke hat nicht ganz so funktioniert wie du gesagt hast, der punkt musste noch weg
PHP-Code:
function structure($id)
{
$ma = array(array("id" => "1","parent" => 0,"eh" => 156),
array("id" => "2","parent" => 1,"eh" => 96),
array("id" => "3","parent" => 2,"eh" => 57),
array("id" => "4","parent" => 3,"eh" => 20),);
$retval = "";
if ($ma[$id]['parent'] > 0){
$retval = structure($ma[$id]['parent']-1);
}
$retval .= str_repeat("-",$id).$ma[$id]["id"]."EH: ".$ma[$id]["eh"]."<br>";
return $retval;
}
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:09 Uhr.
|
 |