![]() |
Re: [PHP] Mehrdimensionales Array durchsuchen
Stimmt ^^ Fehler von meiner Seite, sorry! :oops:
Flare |
Re: [PHP] Mehrdimensionales Array durchsuchen
:thumb: es klappt, vielen Danke.
|
Re: [PHP] Mehrdimensionales Array durchsuchen
sind es immer 3 Dimensionen?
möchtest du alle ergebnisse oder nur das erste?
Code:
das findet alles in einem array beliebiger tiefe.
function searchrec($a, $keys, $v) {
$res = array (); foreach ($a as $key=>$ar) { $tkeys = $keys;//? $tkeys[] = $key; if (is_array($ar)) { $res = array_merge(searchrec($ar,$tkeys,$v),$res); } else { if ($ar==$v) { $res[]=implode(',',$tkeys); } } } return $res; } function search($a, $v) { return searchrec($a,$k,$v); } eventuell noch etwas "ungeschickt" da wo das fragezeichen ist...aber es funzt :) das ganze gibt nen array zurück der alle ids der gefundenn sachen beinhaltet... |
Re: [PHP] Mehrdimensionales Array durchsuchen
Nunja, foreach() ist nett, hier aber der falsche Ansatz.
Wenn er wissen will, WO sich dieser Datensatz befindet, muss es über for() laufen ;)
Code:
Edit: Das läuft jetzt über 3 Ebenen. Lässt sich wie oben natürlich auch für n Ebenen umbauen :)
function FindData($aArray, $aData)
{ $aRes = Array(); for($i = 0; $i <= count($aArray); $i++) { for($j = 0; $j <= count($aArray[$i]); $j++) { for($k = 0; $k <= count($aArray[$i][$j]); $k++) { if($aArray[$i][$j][$k] == $aData) { $aRes[] = strval($i).strval($j).strval($k); } } } } return $aRes; } air |
Re: [PHP] Mehrdimensionales Array durchsuchen
Zitat:
Code:
Kommst du nur ueber array_keys() bzw. array_values() oder eben einer foreach-Schleife an Index und Wert ;)
$foo = array(
'foo' => 'bar', 'bar' => 'foo' ); Greetz alcaeus |
Re: [PHP] Mehrdimensionales Array durchsuchen
Zitat:
du kannst dich gerne selber ![]() Edit: Nach nochmaligem lesen deines Posts fällt mir auf das du ja gesagt hast das es mit foreach GEHT. :wall: :wall: :wall: |
Re: [PHP] Mehrdimensionales Array durchsuchen
Zitat:
Eine weitere Möglichkeit wäre noch gewesen, das Ganze mit einer While-Schleife zu machen:
Code:
Wobei mir diese Möglichkeit nicht gefällt.
while (each($array)) {
// Quelltext } Flare |
Re: [PHP] Mehrdimensionales Array durchsuchen
Nun gut, aber im Eröffnungspost war von Zahlorientierten Arrays die Rede, und mit foreach() kann man nunmal nicht auslesen, im wievielten Index man sich befindet (es sei denn, man lässt nebenher auch noch eine Variable inkrementieren ;) )
air |
Re: [PHP] Mehrdimensionales Array durchsuchen
Zitat:
Beweis ![]() geht sowohl mit assoziativen als auch mit zahlen...und ist letztendlich auch nur ein foreach-konstrukt Edit: :| Schon wieder Mistverstanden :wall: Naja, tatsache ist das die Problemstellung mit foreach einwandfrei gelöst werden kann... |
Re: [PHP] Mehrdimensionales Array durchsuchen
Zitat:
Code:
foreach ($foobar as $key => $value) gibt es eben in der richtigen Reihenfolge zurueck, waehrend eine for-Schleife immer nur in die Richtung arbeitest, in der du sie programmierst.
$foobar = array(
1 => 0, 0 => 1 ); Aber so langsam werden wir OT :duck: Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 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-2025 by Thomas Breitkreuz