Ashura: Arrays-Schlüssel auslesen

Hallo.

Ich suche gerade nach einer Möglichkeit, einen Array-Schlüssel auszulesen, welcher als String vorliegt.

Beispiel:

$arr_test = array(  
  'foo' => array(  
    'bar', 'baz', 'qux'  
  );  
);

Wie komme ich nun mit so wenig Code wie möglich an den Wert „foo“? Per Index [0] kann ich ja nicht darauf zugreifen.

Folgendermaßen ginge es zwar, aber ich empfinde diese Lösung als auf den Spatzen gerichtete Kanone:

foreach ($arr_test as $str_key => $mix_value) {  
  echo $str_key;  
}

Nur um einen einzigen Wert zu ermitteln, muss hier ein Schleifendurchlauf gestartet werden und eine zusätzliche unnütze Variable angelegt werden.

Gibt es bessere Altenativen?

Danke und einen schönen Dienstag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
mathbr:del.icio.us/ mathbr:w00t/
  1. Hello,

    Wie komme ich nun mit so wenig Code wie möglich an den Wert „foo“? Per Index [0] kann ich ja nicht darauf zugreifen.

    Gibt es bessere Altenativen?

    array_keys(), list und each, array_shift, ...

    Kommt darauf an, ob Du weißt, an welcher Position das Element steht.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hallo Tom und Christian.

      array_keys(), list und each, array_shift, ...

      Kommt darauf an, ob Du weißt, an welcher Position das Element steht.

      Der gewünschte Wert steht grundsätzlich direkt an erster Stelle in $arr_test.

      Also ist array_keys() die kürzeste Möglichkeit?
      (Zumindest fiele damit die Schleife weg.)

      Einen schönen Dienstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/ mathbr:w00t/
      1. Hello,

        Der gewünschte Wert steht grundsätzlich direkt an erster Stelle in $arr_test.

        Also ist array_keys() die kürzeste Möglichkeit?

        *ähem*
        lesen Musst Du schon selber :-)

        In einem Zug sollte das mit

        list($key,$val) = each($_test);

        gehen.

        Oder aber Du sagst einfach

        $key = key($_test);

        Bei beiden solltest Du Dir aber darüber im Klaren sein, wo der Array-Pointer gerade steht.

        Also eventuell doch lieber ein

        reset($_test);

        vorweg.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hallo Tom.

          Also ist array_keys() die kürzeste Möglichkeit?

          *ähem*
          lesen Musst Du schon selber :-)

          Hehe, du hast mich ertappt. Ich habe eben wirklich nicht noch einmal nachgeschlagen.

          In einem Zug sollte das mit

          list($key,$val) = each($_test);

          gehen.

          Oder aber Du sagst einfach

          $key = key($_test);

          Bei beiden solltest Du Dir aber darüber im Klaren sein, wo der Array-Pointer gerade steht.

          Vom Programmablauf her geht das betroffene Array zwangsläufig mit dem ersten als aktuellen Schlüssel in den Teilbereich.

          Also eventuell doch lieber ein

          reset($_test);

          vorweg.

          Ja, kann nicht schaden.

          Ich danke euch beiden.

          Einen schönen Dienstag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          mathbr:del.icio.us/ mathbr:w00t/
  2. Hallo Ashura,

    ich weiß zwar nicht, über welchen Parameter du an den Key kommen willst, jedoch kannst du mit array_keys http://de2.php.net/manual/de/function.array-keys.php so einiges anstellen. Vielleicht findest du die passenden Parameter.

      
    <?php  
    $arr_test = array(  
      'foo' => array(  
        'bar', 'baz', 'qux'  
      )  
    );  
      
    $temp = array_keys($arr_test);  
    echo $temp[0];  
    ?>  
    
    

    Ciao
    Christian

    1. Hallo Christian.

      ich weiß zwar nicht, über welchen Parameter du an den Key kommen willst, jedoch kannst du mit array_keys http://de2.php.net/manual/de/function.array-keys.php so einiges anstellen. Vielleicht findest du die passenden Parameter.

      Wäre eine Möglichkeit, die ich im Gewirr von array-Funktionen noch nicht entdeckt habe, danke.

      Einen schönen Dienstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/ mathbr:w00t/