ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1858
1858
EMPFEHLEN
-
Hallo,
suche jetzt schon seit Stunden nach einer Möglichkeit wie im Titel angegeben. Ich finde immer nur die Suche nach Werten. Mein Array besitzt aber keine Werte, sondern nur Schlüssel und wieder Unterschlüssel (entspricht einer Ordnerstruktur mit Unterordnern).
Nun möchte ich neue Unterordner einfügen, muss dazu aber die richtige Stelle (Schlüssel) im Array finden.
Ich brauch also eine Funktion die der array_search entspricht, mir aber nicht den Pfad zu Werten, sondern den Pfad zu Schlüsseln gibt.
Ich möchte ein Script schreiben, welches automatisch Ordner mit entsprechenden Unterordnern sammelt und die jeweiligen Pfade dann ausgibt. Da die Tiefen nicht bekannt sind, möchte ich das gerne rekursiv machen. Komme aber grad nicht weiter
-
05.03.07 20:58 #2
- Registriert seit
- Sep 2005
- Beiträge
- 705
Liege ich da jetzt Falsch oder sind "Schlüssel" nicht auch "Werte" nur eben eine bestimmte Zahlencombi.?
-
Nee, Schlüssel sind die Dinger in den eckigen Klammern. Also bei $ar[auto][bmw][reifen] will ich nach dem Schlüssel Reifen suchen und den Pfad bis dahin angezeigt bekommen.
Mein Array ist sozusagen ein Baum ohne Blätter
Ne Ordnerstruktur halt.
-
05.03.07 21:08 #4
- Registriert seit
- Sep 2005
- Beiträge
- 705
Also wenn ich das dann richtig Verstehe soll dann deine Ausgabe so aussehen
PHP-Code:[auto][bmw][reifen]
-
genau

Mir schwant Schlimmes... Kann es sein, dass ich dafür ganz viele verschachtelte Suchen durchlaufen lassen muss? Als erstes wird Ebene 1 durchsucht, bei Misserfolg Ebene 2 von Schlüssel 1, dann Ebene 2 von Schlüssel 2 usw... ?
-
05.03.07 21:44 #6
- Registriert seit
- Sep 2005
- Beiträge
- 705
Ich weiß zwar wie du einzelne keys eines Arrays suchen kannst, aber hab jetzt noch ne Frage und zwar hat doch jeder Array, egal ob mehrdimensional oder nicht doch auch solch ein musster ...
Demnach musst du ja so oder so einen Wert festlegen, oder liege ich da jetzt falsch ... erzeugst ja sonst nen "leeren" Array ...PHP-Code:echo $ar[mein][kleiner][test];
//--> Wert des Arrays ...
Ansonsten, schau dir mal das an ...
http://us2.php.net/manual/de/function.array-keys.php
-
Der Wert bleibt leer. Dort kommt ein leeres Array hin. Kann für den Wert auch "0" einsetzen, da der Wert ja uninteressant ist für mich. Die Schlüssel mit ihren Unterschlüsseln stellen eine Ordner(Baum)struktur dar. Und wenn es keine Unterordner mehr gibt, dann is Ende. Ich brauch die Werte also nicht.
Deine Funktion gibt zwar alle Schlüssel, doch das nützt mir nichts. Ich weis ja, welche Schlüssel drinne sind, nur nicht wo.
edit: boah das war ein Akt. Habe mich jetzt mit der rekursiven Funktion rumgeplagt, die mir die oben genannte Struktur erstellen soll. UND ich habs hingekriegt!! Das is der Hammer
Wen der Code interessiert:
Das Script einfach in einen Ordner mit vielen verzweigten Unterordnern legen. Es liefert die Ordnerstruktur in einem Array als Baum. (Es ist natürlich an meine Bedürfnisse angepasst, u.U. muß die if-Abfrage bei "sammle ordnernamen" angepasst werden)PHP-Code:<pre>
<?
$path=".";
function sammle($path,$ordner){
$templist=array();
$handle = opendir($path);
while ($file=readdir($handle)){
if($file!="."&&$file!=".."&&$file!="index.php"&&$file!="thumbs"&&is_dir($path."/".$file)){ #sammle ordnernamen
array_push($templist,$file);
}
}
closedir($handle);
if (count($templist)!=0){
$count=count($templist);
for($i=0;$i<$count;$i++){
$ordner=array_shift($templist);
$path.="/".$ordner;
$add=sammle($path,$ordner);
if (is_array($add)) {
$array[$ordner]=$add;
}
else {
$array[$add]=array();
}
$path=substr($path,0,strrpos($path,"/"));
if(count($templist)==0){return($array);}
}
}
return ($ordner);
}
$list=sammle($path,$ordner);
print_r($list);
?>
</pre>Geändert von emuume (06.03.07 um 01:35 Uhr)
Ähnliche Themen
-
Geschateltes assoziatives Array nach einem Schlüssel durchsuchen
Von 'GreenDragon' im Forum PHPAntworten: 2Letzter Beitrag: 10.11.10, 13:12 -
Mehrdimensionales nach Schlüssel sortieren
Von IR-Bastian im Forum PHPAntworten: 2Letzter Beitrag: 14.07.10, 10:40 -
Mehrdimensionales Array nach 2. Indizes sortieren
Von Hockeyfan4444 im Forum PHPAntworten: 2Letzter Beitrag: 03.09.08, 16:48 -
Mehrdimensionales Array füllen/durchsuchen/ausgeben
Von IR-Bastian im Forum PHPAntworten: 10Letzter Beitrag: 28.02.08, 16:46 -
Mehrdim. Array sortieren nach Schlüssel
Von sdh im Forum PHPAntworten: 0Letzter Beitrag: 10.01.08, 17:22





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren