![]() |
[PHP] Mehrdimensionales Array durchsuchen
Hallo,
ich habe ein mehrdimensionales array $dateiname[][][]. $dateiname[1][2][2] hat z.B den Wert "test.php"; Jetzt möchte ich das array durchsuchen nach dem Wort "test.php" und möchte als Ergebnis etwas wie : "122" in welcher Form auch immer. Hat jemand eine Idee? |
Re: [PHP] Mehrdimensionales Array durchsuchen
Du kannst es doch einfach in 3 Schleifen verschachteln, oder? ;)
|
Re: [PHP] Mehrdimensionales Array durchsuchen
Ich weiß aber die obere Grenze für meine Schleifen nicht, also wieviele einträge pro "dimension" vorhanden sind :gruebel:
|
Re: [PHP] Mehrdimensionales Array durchsuchen
Zitat:
Code:
So kannste auch alles durchgehen, falls es keine einfachere Möglichkeit gibt.
foreach ($my_array as $entry)
{ // durchläuft die oberste Ebene // $entry <== das aktuelle Element foreach ($entry as $foo_entry) { // 2. Ebene } } |
Re: [PHP] Mehrdimensionales Array durchsuchen
Hi Wuaegner!
Man könnte ja ineinander verschachtelte For-Scheifen machen...
Code:
Wobei man unbedingt noch eine Art break-Befehl reinbauen sollte, den habe ich aber gerade vergessen wie der war.
foreach ($dateiname as dim1=>wert1) {
foreach ($dim1 as dim2=>$wert2) { foreach ($dim2 as $dim3=>$wert3) { if ($dateiname[$dim1][$dim2][$dim3]=="test.php") $result = $dim1.$dim2.$dim3; } } } Flare |
Re: [PHP] Mehrdimensionales Array durchsuchen
Hallo,
Danke schonmal, erhalt nun aber bei dem hier:
Delphi-Quellcode:
die Fehlermeldung : "Warning: Illegal offset type in C:\apachefriends\xampp\htdocs\ibj2\nav_de.php on line 134"
foreach ($dateiname as $layer1) {
foreach ($layer1 as $layer2) { foreach ($layer2 as $layer3) { if ($dateiname[$layer1][$layer2][$layer3]=="bewerber.php"){ echo $layer1.$layer2.$layer3; break;} } } } |
Re: [PHP] Mehrdimensionales Array durchsuchen
Also dass es in Zeile 134 ist nützt uns nix, da das Script keine 134 Zeilen hat und ich daher nicht weiß wo der den Fehler nun hat...
Weiterhin ist es imho so, dass er mit dem Break nur aus der einen SChleife rausgeht, sind aber noch 2 mehr. :wink: und wenn man
Code:
schreibt, nimmt er in $layer1 den Wert (Also nicht den Index) vom ersten Element. Du willst aber sicherlich den Index haben? :mrgreen:
foreach ($dateiname as $layer1)
Flare |
Re: [PHP] Mehrdimensionales Array durchsuchen
Ok, nun habe ich es so gemacht wie du es vorgeschlagen hast:
Code:
Nun kommt aber
foreach ($dateiname as $dim1=>$wert1) {
foreach ($dim1 as $dim2=>$wert2) { foreach ($dim2 as $dim3=>$wert3) { if ($dateiname[$dim1][$dim2][$dim3]=="bewerber.php") echo $dim1.$dim2.$dim3; } } } Zitat:
|
Re: [PHP] Mehrdimensionales Array durchsuchen
Dein Array heißt auch exakt so und in jeder Dimension ist auch mindestens 1 Feld vorhanden?
Wenn dies so ist, dann weiß ich nicht woran es liegen könnte :mrgreen: Flare |
Re: [PHP] Mehrdimensionales Array durchsuchen
Zitat:
Code:
Ganz genau...$dim1; also nicht den Wert, sondern den Index. Korrekt waere es so:
foreach ($dateiname as $dim1=>$wert1) {
foreach ($dim1 as $dim2=>$wert2) {
Code:
Greetz
foreach ($dateiname as $index1 => $wert1)
{ foreach ($wert1 as $index2 => $wert2) { foreach ($wert2 as $index3 => $wert3) { if ($wert3 == 'bewerber.php') { echo $index1 . $index2 . $index3; } } } } alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz