Tangotänzerin: Array-Schlüssel als Variable definieren

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

  1. 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

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. 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

      1. 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

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. 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

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
    1. 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