Index von Element im Array ermitteln
Joshua
- php
-1 Knusperklumpen0 Joshua
0 dedlfix0 Joshua
1 Christian Kruse
Hallo!
Ich habe ein kleines Problem, und zwar folgendes. Mittels URL wird eine ID an das PHP Script übergeben. Diese ID soll dann in eine Variable gespeichert werden. Weiters soll dann ein Array durchsucht werden, ob ein Element daraus die ID enthält... Leider stehe ich heute dabei etwas auf der Leitung. Jedenfalls Sieht das Array so aus:
[code:lang=php]
$id = $_GET['id'];
$array = array(
"ID_2%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
"ID_3%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
"ID_8%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
"ID_9%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
"ID_45%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
)
[/code]
Jetzt würde ich gerne das Element haben, welches z.b. die Zeichenfolge ID_2 oder ID_45 enthält.
Wie gesagt, leider komme ich da nicht ganz weiter...
Naja, schönen Tag noch und danke schon mal im Voraus für eure Hilfe.
Gruss,
Joshua
Hi,
array_search(); sollte dir da helfen.
$key = array_search('ID_2', $array);
mfg
Knusperklumpen
Hallo!
array_search(); sollte dir da helfen.
$key = array_search('ID_2', $array);
Nein, tut es nicht. Das array sieht ja nicht so aus:
array(
"id",
"vorname",
"nachname",
...
);
sondern so:
array(
"id%vorname%nachname",
"id2%vorname%nachname",
...
);
mfg
Knusperklumpen
Gruss,
Joshua
Ach so, sorry, nicht richtig gelesen.
Du könntest doch auch Assoziative Arrays nehmen, bei denen die ID der Key ist.
Ansonsten ist wohl die foreach-Schleife die Beste Lösung.
mfg
Knusperklumpen
echo $begrüßung;
Weiters soll dann ein Array durchsucht werden, ob ein Element daraus die ID enthält...
Du könntest mit foreach durch das Array laufen und mit geeigneten Stringfunktionen den Teil zwischen '_' und dem ersten '%' mit der ID vergleichen.
Du könntest auch array_filter() verwenden. Die Callback-Funktion sollte true zurückliefern, wenn... siehe oben. Damit erhältst du ein Array mit einem oder mehreren Elementen. Die Keys bleiben übrigens erhalten. foreach oder reset() und key() helfen weiter, die/den Key zu ermitteln.
echo "$verabschiedung $name";
echo $begrüßung;
echo $ebenfalls;
Du könntest mit foreach durch das Array laufen und mit geeigneten Stringfunktionen den Teil zwischen '_' und dem ersten '%' mit der ID vergleichen.
Danke mal für deinen Vorschlag. Werde ihn gleich umsetzen. (Brauche übrigens den ganzen string "id_x" - also bis zum ersten % lesen und dann abbrechen reicht schon...)
echo "$verabschiedung $name";
echo "Gruss,
Joshua";
你好 Joshua,
$id = $_GET['id'];
$array = array(
"ID_2%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
"ID_3%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
"ID_8%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
"ID_9%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
"ID_45%name%nachname%plz%hausnummer%ip%datum%uhrzeit",)
>
> Jetzt würde ich gerne das Element haben, welches z.b. die Zeichenfolge
> ID\_2 oder ID\_45 enthält.
Musst du das für viele Elemente machen? Viel ist hierbei mehrfach bei
einem Array von mehr als 250 Einträgen. Wenn das nicht der Fall ist, wird
wohl eine einfache for($i=0;$i<count($array);++$i)-Schleife völlig
ausreichen. Ist das wohl der Fall, kannst du den Array einmal vollständig
durchgehen und für jedes Element in einem assoziativen Array eine
ID=>Index-Zuordnung erstellen. Letzteres lohnt sich aber wirklich nur, wenn
du oft einen Index finden musst. Ansonsten ist der Aufwand höher als eine
einfache, lineare Suche.
再见,
克里斯蒂安
--
[Bruce Lee, der Meister](http://ck.kennt-wayne.de/bruce-lee-der-meister) | [Neues Design im Thema](http://ck.kennt-wayne.de/neues-design-im-thema)
Sein oder nicht sein, das ist hier die Frage!
<http://wwwtech.de/>
Hallo!
Musst du das für viele Elemente machen? Viel ist hierbei mehrfach bei
einem Array von mehr als 250 Einträgen.
Naja... das kommt drauf an. Es handelt sich um ein Kommentar script. - Bei dem die Beiträge durchgegangen werden, die kommentiert worden sind bzw. werden. Also... das ist ziemlich unterschiedlich, natürlich kann es nach einiger zeit soweit sein, dass mal gut und gerne 250 elemente im Array vorhanden sind.
Gruss
Joshua
你好 Joshua,
Musst du das für viele Elemente machen? Viel ist hierbei mehrfach bei
einem Array von mehr als 250 Einträgen.Naja... das kommt drauf an. Es handelt sich um ein Kommentar script. -
Bei dem die Beiträge durchgegangen werden, die kommentiert worden sind
bzw. werden. Also... das ist ziemlich unterschiedlich, natürlich kann es
nach einiger zeit soweit sein, dass mal gut und gerne 250 elemente im
Array vorhanden sind.
Wie gesagt – es bringt erst dann was, wenn du das _mehrfach_ machen musst.
Wenn du den Index nur ein einziges mal finden must, dann wird es dadurch
nur langsamer, egal wieviele Elemente das Array hat.
再见,
克里斯蒂安