array_key_exists(), überprüfen Variable in Array
Stefan
- php
0 Tobias0 Stefan
0 André Laugks
Hallo,
irgendwie kriege ich es nicht hin eine Variable mit einem Array Inhalt zu vergleichen.
//Ich habe ein Array gefüllt:
$arr=array("blau", "rot", "gelb");
//nun wollte ich eine Variable überprüfen, ob sie in dem Array existiert:
$var="orange";
If (array_key_exists($var, $arr) {print "vorhanden";} else {print "nicht vorhanden";}
Eigentlich dachte ich , es sähe gut aus, leider zeigt er immer "nicht vorhanden" an!?
Weiß jemand vielleicht warum und wo ich einen Fehler gemacht habe?
Danke
:)
Stefan
Hallo Stefan,
//Ich habe ein Array gefüllt:
$arr=array("blau", "rot", "gelb");
//nun wollte ich eine Variable überprüfen, ob sie in dem Array existiert:
$var="orange";
If (array_key_exists($var, $arr) {print "vorhanden";} else {print "nicht vorhanden";}
ob man if kleinschreiben muss weiß ich nicht, aber nach '$var, $arr)' fehlt noch eine Klammer (ich nehme aber an Tipfehler, da php sonst eine Fehlermeldung ausspuckt).
Eigentlich dachte ich , es sähe gut aus, leider zeigt er immer "nicht vorhanden" an!?
Wenn dein Script wirklich so aussieht, wie du es gepostet hast, wundert mich das nicht, in $arr steht schlichtuntergreifend nichts von "orange" :)
Grüße aus Nürnberg
Tobias
Wenn dein Script wirklich so aussieht, wie du es gepostet hast, wundert mich das nicht, in $arr steht schlichtuntergreifend nichts von "orange" :)
Grüße aus Nürnberg
Tobias
Hallo Tobias,
ehmm sorry,ich habe einen riesen Blödsinn geschrieben:rolleyes:
ich hab das auch anders bei mir stehen(glücklicherweise;))
nocheinmal:
$arr=array("blau", "rot", "gelb", "orange");
$var="orange";
if (array_key_exists($var, $arr)) {print "vorhanden";} else {print "nicht vorhanden";};
er zeigt, "nicht vorhanden"!
Stefan
Hallo!
$arr=array("blau", "rot", "gelb");
Weiß jemand vielleicht warum und wo ich einen Fehler gemacht habe?
verwende in_array() [http://www.php.net/in_array]
Du verwendest ein "normales" Array. array_key_exists() erwartet aber ein assoziatives Array, welches ha Keys hat.
MfG, André Laugks
L-Andre @ gmx.de
Du verwendest ein "normales" Array. array_key_exists() erwartet aber ein assoziatives Array, welches ha Keys hat.
MfG, André Laugks
L-Andre @ gmx.de
Danke:)
irgendwie habe ich Probleme mit "normalen" und "assoziativen" arrays.
ich habe zwar das php_manual gelesen, und mich aber dann wieder für den falschen befehl entschieden. (statt in_array(), array_key_exists())
:(
Hallo,
irgendwie habe ich Probleme mit "normalen" und "assoziativen" arrays.
ich habe zwar das php_manual gelesen, und mich aber dann wieder für den falschen befehl entschieden. (statt in_array(), array_key_exists())
Das mag wohl daran liegen, dass PHP den Ausdruck Array für seine Strukturen verwendet, obwohl er hier falsch ist. Es handelt sich bei den "Parrayhps" um Baumstrukturen, also mehrdimensional verkettete Listen. Die Verkettungsdaten (Zeiger) werden dabei verborgen gehalten. Das bedeutet, dass auch ein "normales" PHP-Array schon in jedem Element als Nutzlast den KEY und den VALUE trägt. Wenn man eine Kette jetzt nach den Zeigern abläuft, so wie das manche PHP-Funktionen tun, dann müssen die Elemente nicht in der Reihenfolge der Keys kommen. Es können auch einzelne Elemente in der Kette den Key NULL enthalten, obwohl man noch nicht am Ende angekommen ist.
Mal dir da einfach mal ein Bild, dann lässt es sich einfacher verstehen.
Bei den Assoziativen Arrays ist dann ein weiteres Nutzlast-Element eingetragen, dass zu einer weiterern Verzweigung führt. Jeder Dimension wird in einem eigenen Baum geführt. Das kostet Speicher, macht aber das Sortieren und Finden total schnell.
Liebe Grüße aus http://www.braunschweig.de
Tom