2010-02-16 14 views
9

Der Schlüssel des assoziativen Arrays wird dynamisch generiert. Wie bekomme ich den "Schlüssel" eines solchen Arrays?Ermitteln des Schlüssels des einzigen Elements in einem PHP-Array

$arr = array ('dynamic_key' => 'Value'); 

Ich bin mir bewusst, dass es möglich ist, es durch eine foreach-Schleife zuzugreifen wie folgt aus:

foreach ($arr as $key => $val) echo "Key value is $key"; 

Ich weiß jedoch, dass dieses Array nur einen Schlüssel haben und wollen eine foreach-Schleife vermeiden . Ist es möglich, auf den Wert dieses Elements auf andere Weise zuzugreifen? Oder den Schlüsselnamen bekommen?

Antwort

13

edit: http://php.net/each sagt:

jeder

Warnung Diese Funktion wurde in PHP 7.2.0 DEPRECATED. Von dieser Funktion wird dringend abgeraten.


key() Verwendung ist in Ordnung.
Wenn Sie den Wert trotzdem abrufen möchten, können Sie auch each() und list() verwenden.

$arr = array ('dynamic_key' => 'Value'); 
list($key, $value) = each($arr); 
echo $key, ' -> ', $value, "\n"; 

druckt dynamic_key -> Value

+0

Ein kleiner Fehler. Die letzte Zeile sollte sein: echo $ key. '->'. $ Wert. "\ n"; 'anstelle von' echo $ key ', ->', $ value, "\ n"; '(dots, nicht comas). – PolGraphic

+4

PolGraphic: "Letzte Zeile sollte sein" - nein, sollte es nicht. Keine Notwendigkeit, dort eine Verkettung zu machen. Sie können eine praktisch unbegrenzte Anzahl von durch Kommas getrennten Argumenten an das Echo übergeben. – VolkerK

+1

'each()' ist in neueren Versionen von PHP veraltet, also ... Verlassen Sie sich nicht auf diese Arbeit in der Zukunft. – Offlein

5
$keys = array_keys($arr); 
echo $keys[0]; 

Oder verwenden Sie array_values() für den Wert.

0

Sie können array_shift(array_keys($arr)) (mit array_values für den Wert) verwenden, aber es macht immer noch eine Schleife intern.

0

Was ist mit array_keys()?

Es ist ein Array obwohl zurückkehrt ...

0

meinen Sie, dass Sie den Wert des Eintrags haben und wollen die Schlüssel zu bekommen?

array_search ($value, $array) 

Gibt den Schlüssel für Nadel, wenn sie in dem Array , ansonsten FALSE gefunden ist.

Wenn Nadel im Heuhaufen mehr als einmal gefunden wird, ist der erste übereinstimmende Schlüssel zurückgegeben. Um die Schlüssel für alle übereinstimmenden Werte zurückzugeben, verwenden Sie stattdessen array_keys() mit den optionalen Parameter search_value .

weitere Details: http://php.net/manual/en/function.array-search.php

2

Kürzeste, einfachste und unabhängige Lösung ist:

$key = key($arr); 
$value = reset($arr); 
Verwandte Themen