Funktion mit Parametern
Alicja
- php
0 Axel Richter0 Alicja
0 lulu0 Lösung
rH
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?
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
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
Ja, promt als ich den Post abgeschickt habe habe ich es auch bemerkt, aber vielen Dank für die schnelle Reaktion.
Huhu Alicja
tja, manchmal sieht man den ($val)d vor lauter Bäumen nicht.
[...]
function get_param1($myarr, $val){ # $val
while(list($key, $val) = each($myarr)){ # auch $val ???
[...]
Viele Grüße
lulu
Sers,
$myarr = array("v1" => "text1", "v2" => "text2", "v3" => "text3");
function get_param1($myarr, $val){
<---------- HIER der PARAMETER $val
while(list($key, $val) = each($myarr)){
if ($key == $val){
<-------------- HIER überschreibst du den PARAMETER
echo $key . "=>" . $val . "<br>";
<-------------------------------- Und nun vergleichst du den Key mit dem Value aus dem Array!
}
}
Hier die Lösung:
function get_param($arr, $key){
if(is_array($arr) && in_array($key,array_keys($arr)))
return $arr[$key];
}
rH
Sers,
$myarr = array("v1" => "text1", "v2" => "text2", "v3" => "text3");
function get_param1($myarr, $val){
<---------- HIER der PARAMETER $val
while(list($key, $val) = each($myarr)){
<-------------- HIER überschreibst du den PARAMETER
if ($key == $val){
<-------------- und nicht hier
echo $key . "=>" . $val . "<br>";
<-------------------------------- Und nun vergleichst du den Key mit dem Value aus dem Array!
}
}
Hier die Lösung:
function get_param($arr, $key){
if(is_array($arr) && in_array($key,array_keys($arr)))
return $arr[$key];
}
rH