| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

24-06-2009, 09:48
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Zitat:
|
Was genau bei meinen Versuchen mit "array_merge()" zurückgegeben wurde weiß ich nicht mehr. Da es nicht geklappt hab, hatte ich den Versuch - genau wie auch bei array_push() - verworfen!
|
Das verwerfen der einzig möglichen/schönsten Lösung war bestimmt keine gute Idee.
Schon witzig, wie ablehnend du dem gegenüber stehst......
|

24-06-2009, 10:01
|
|
nichtsooft
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Ort: Wien [AUT]
Beiträge: 383
|
|
Zitat:
Zitat von combie
Das verwerfen der einzig möglichen/schönsten Lösung war bestimmt keine gute Idee.
Schon witzig, wie ablehnend du dem gegenüber stehst......
|
Nun ja; Beim aktuellen Stand ändert sich leider nichts wenn ich array_merge() anwende! Selbstverständlich hab ich das auch getestet:
PHP-Code:
function gallist($var, $depth=0, &$cnt=0, $sub=0, $g_out) {
$set = 0;
FOREACH ($var as $val) {
$rueck = $depth * 16;
// Class ändern wenn subgallery
IF (!isset($val["SUB"])) {
$class = "normal";
} ELSE {
$class = "bold";
}
// Array $g_out befüllen
$g_out[$cnt] = array_merge($g_out, array('key' => $cnt, 'id' => $val[0]["id"], 'name' => $val[0]["name"], 'depth' => $rueck, 'class' => $class));
IF (isset($val["SUB"])) {
$cnt++;
//$g_out = array();
$anzahl = isset($val["SUB"]) ? count($val["SUB"]) : 0;
$g_out[$cnt] = gallist($val["SUB"], $depth+1, $cnt, $anzahl, $g_out);
// array_push($g_out, gallist($val["SUB"], $depth+1, $cnt, $anzahl));
} ELSE {
$set = 1;
}
IF($set === 1) {return $g_out;};
}
return $g_out;
}
Wie meinste das mit ablehnend? Ich lehne array_merge() nicht ab, aber ich hänge mit der Funktion schon länger als 48h und schön langsam werd ich - und ich denke das ist nachvollziehbar - schon etwas ungeduldig!
__________________
WHILE (!$asleep) { $sheep++; }
|

24-06-2009, 10:27
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Es hilft nix array_merge() einfach so in den Quellcode zu tunken.
Du sollst damit die Rückgabe des rekursiven Aufrufes mit den schon gefundenen verschmelzen.
|

24-06-2009, 10:34
|
|
nichtsooft
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Ort: Wien [AUT]
Beiträge: 383
|
|
Zitat:
Zitat von combie
Es hilft nix array_merge() einfach so in den Quellcode zu tunken.
Du sollst damit die Rückgabe des rekursiven Aufrufes mit den schon gefundenen verschmelzen.
|
Hatte ich gerade versucht! Will aber irgendwie auch nicht!
PHP-Code:
function gallist($var, $depth=0, &$cnt=0, $sub=0) {
$g_out = array();
FOREACH ($var as $val) {
$rueck = $depth * 16;
// Class ändern wenn subgallery
IF (!isset($val["SUB"])) {
$class = "normal";
} ELSE {
$class = "bold";
}
// Array $g_out befüllen
$g_out[$cnt] = array('key' => $cnt, 'id' => $val[0]["id"], 'name' => $val[0]["name"], 'depth' => $rueck, 'class' => $class);
IF (isset($val["SUB"])) {
$cnt++;
$anzahl = isset($val["SUB"]) ? count($val["SUB"]) : 0;
$g_out[$cnt] = array_merge($g_out, gallist($val["SUB"], $depth+1, $cnt, $anzahl));
}
$cnt++;
}
return $g_out;
}
__________________
WHILE (!$asleep) { $sheep++; }
|

24-06-2009, 10:37
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
PHP-Code:
$g_out[$cnt] = array_merge($g_out, gallist($val["SUB"], $depth+1, $cnt, $anzahl));
// ersetzen durch:
$g_out = array_merge($g_out, gallist($val["SUB"], $depth+1, $cnt, $anzahl));
Das $cnt kannst du wohl komplett entsorgen...
|

24-06-2009, 10:43
|
|
nichtsooft
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Ort: Wien [AUT]
Beiträge: 383
|
|
NICE! Das funktioniert endlich!
1000 Dank combie!
Zitat:
Zitat von combie
Das $cnt kannst du wohl komplett entsorgen...
|
Irgendwie leider nicht! Hatte es grade eben versucht...
__________________
WHILE (!$asleep) { $sheep++; }
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|