Array-Schlüssel als Variable definieren
Tangotänzerin
- php
Liebes Forum,
erstmal schöne Restpfingsten!
Schlage mich schon seit einigen Stunden mit folgendem Problem rum (wahrscheinlich ist das für Euch ganz einfach)
Habe nachfolgendes Array und möchte den Schlüssel als Variable definieren, um mit der if-Bedingung abzufragen, ob der jeweilige Schlüssel mit der Variable X ( übereinstimmt oder nicht und dann die Anweisung auszuführen.
Array
(
[0] => Array
(
[name] => HerrXYZ
[passwort] => xyz
[email] => yz@wab.de
)
[1] => Array
(
[name] => FrauABC
[passwort] => abc
[email] => abc@glx.de
)
)
Besten Dank und Gruß
Tangotänzerin
Hi,
Habe nachfolgendes Array und möchte den Schlüssel als Variable definieren
Wo/in welchem Umfeld?
um mit der if-Bedingung abzufragen
Welches IF?
Suchst du vielleicht einfach nur die erweiterte foreach-Syntax?
MfG ChrisB
Hi,
Habe nachfolgendes Array und möchte den Schlüssel als Variable definieren
Wo/in welchem Umfeld?
bei einem ausgesuchten Personenkreis, als Mitglied-Login
um mit der if-Bedingung abzufragen
Welches IF?
Suchst du vielleicht einfach nur die erweiterte foreach-Syntax?
habe es mit einer foreach-Schleife versucht, war aber erfolglos, denn ich will nicht das gesamte Array durchlaufen, sondern nur abfragen, ob die Bedingung 1mal in einem beliebigen Schlüssel erfüllt ist, dann soll Text-x am Screen erscheinen und ansonsten soll Text-y am Screen erscheinen.
Was ist eine erweiterte foreach-Syntax?
Gruß Tangotänzerin
MfG ChrisB
Hi,
Habe nachfolgendes Array und möchte den Schlüssel als Variable definieren
Wo/in welchem Umfeld?
bei einem ausgesuchten Personenkreis, als Mitglied-Login
Ich meinte, in welchem Umfeld innerhalb der Programierung.
Wo und wie willst du auf das Array zugreifen?
habe es mit einer foreach-Schleife versucht, war aber erfolglos,
Es ist immer noch unklar, *was* du eigentlich erreichen willst.
denn ich will nicht das gesamte Array durchlaufen, sondern nur abfragen, ob die Bedingung 1mal in einem beliebigen Schlüssel erfüllt ist,
Welche Bedingung?
Willst du einfach nur wissen, ob ein Eintrag mit einem bestimmten Key im Array existiert?
Wenn ja, dann a) sag das doch gleich, und b) schau in der Übersicht der Array-Funktionen nach, welche dabei behilflich sein könnte.
Was ist eine erweiterte foreach-Syntax?
Das kannst du ebenfalls im Handbuch nachlesen.
MfG ChrisB
Moin!
Liebes Forum,
erstmal schöne Restpfingsten!
Schlage mich schon seit einigen Stunden mit folgendem Problem rum (wahrscheinlich ist das für Euch ganz einfach)
Habe nachfolgendes Array und möchte den Schlüssel als Variable definieren, um mit der if-Bedingung abzufragen, ob der jeweilige Schlüssel mit der Variable X ( übereinstimmt oder nicht und dann die Anweisung auszuführen.Array
(
[0] => Array
(
[name] => HerrXYZ
[passwort] => xyz
[email] => yz@wab.de
)[1] => Array
(
[name] => FrauABC
[passwort] => abc
[email] => abc@glx.de
))
<code lang=PHP>
$arKeys=array_keys($ar);
foreach ($arKeys as strKey) {
if ( true
&& $_POST['name']==$ar[$strKey]['name']
&& $_POST['passwort']==$ar[$strKey]['passwort']
) {
myLogin();
break 1;
}
}
</code>
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin!
Mir fehlte ein Dollar...
$arKeys=array_keys($ar);
foreach ($arKeys as $strKey) {
if ( true
&& $_POST['name']==$ar[$strKey]['name']
&& $_POST['passwort']==$ar[$strKey]['passwort']
) {
myLogin();
break 1;
}
}
myGoAway();
exit;
Natürlich kannst Du auch den Array umformen:
$newArray=array();
foreach ($oldArray as $Tupel) {
$newArray[$Tupel['name']]['passwort']=$Tupel['passwort'];
$newArray[$Tupel['name']]['email']=$Tupel['email'];
}
unset($oldArray);
if (! $_POST['passwort']==$newArray[$_POST['name']]['passwort'] ) {
myGoAway();
exit;
}
myLogin();
exit;
Noch besser wäre es aber den Array gleich anders einzulesen. Ich benutze dafür eine Funktion, welche die erste Spalte der CSV-Datei als Schlüssel verwendet. Der muss dann allerdings eindeutig sein, sonst gehen jeweils die vorherigen Einträge verloren.
function fastixCsvToAssocArray($filename, $trenner=';', $remark='#', $maxCols=3) {
$dummy=fastixCheckFile($filename,'r');
$ar=array();
$lines = file($filename);
foreach ($lines as $line) {
$line=trim($line);
if ($remark != $line[0]) {
$arLineTemp=explode($trenner, $line, $maxCols);
$arLine=array();
for ($i=0;$i < $maxCols; $i++) {
$arLineTemp[$i]=trim($arLineTemp[$i]);
if ($i == 0) {
$assoc=$arLineTemp[$i];
} else {
if ($maxCols == 2) {
$ar[$assoc]=$arLineTemp[$i];
} else {
$ar[$assoc][$i]=$arLineTemp[$i];
}
}
}
}
}
return $ar;
}
function fastixCheckFile($filename, $right='r') {
if(!is_file($filename)) {
die ('Fatal: '.$filename.' ist keine Datei!!!'."\n");
}
if(!is_readable($filename)) {
die ('Fatal: '.$filename.' ist nicht lesbar!'."\n");
}
if ( true
&& 'w'==strtolower($right[0])
&& ! is_writable($filename)
) {
die ('Fatal: '.$filename.' ist nicht schreibbar!'."\n");
}
return true;
}
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix