Arrays-Schlüssel auslesen
Ashura
- php
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
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
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
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
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
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
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