Diese Funktion arbeitet fehlerfrei:
$myarr = array("v1" => "text1", "v2" => "text2", "v3" => "text3");
function get_param2($myarr){
while(list($key, $val) = each($myarr)){
if ($key == "v2"){
echo $key . "=>" . $val . "<br>";
}
}
}
get_param2($myarr);
Ich muss aber den String den ich mit $key vergleiche als einen Parameter übergeben, also versuche ich folgendes:
$myarr = array("v1" => "text1", "v2" => "text2", "v3" => "text3");
function get_param1($myarr, $val){
while(list($key, $val) = each($myarr)){
if ($key == $val){
echo $key . "=>" . $val . "<br>";
}
}
}
$val = "v2";
get_param1($myarr, $val);
Leider so funktioniert es nicht. Ich habe schon getestet mit
echo $key;
echo $val;
geprüft ob die Variablen gesetzt sind und ein Wert haben, alles ist in Ordnung, sogar den Type habe ich gepfüft, beide sind Strings, trotzdem werden $key und $val nicht verglichen. Hat jemand eine Idee warum?
Ja, nach
while(list($key, $val) = each($myarr)){
ist $key == "v1" und $val == "text1"
Du verwendest die Variable $val für zwei Dinge. Einmal als Übergabe-Parameter für dem Key, den du ausgeben willst und dann wieder als Variable für die Werte des Arrays. Nimm als Übergabe-Parameter $sKey für seachKey.
$myarr = array("v1" => "text1", "v2" => "text2", "v3" => "text3");
function get_param1($myarr, $sKey){
while(list($key, $val) = each($myarr)){
if ($key == $sKey){
echo $key . "=>" . $val . "<br>";
}
}
}
$sKey = "v2";
get_param1($myarr, $val);
Gruß
Axel