827 Stimmen

Den ersten Schlüssel in einem (möglicherweise) assoziativen Array abrufen?

Wie kann man am besten den ersten Schlüssel in einem möglicherweise assoziativen Array ermitteln? Mein erster Gedanke ist es, nur foreach das Array und dann sofort brechen, wie diese:

foreach ($an_array as $key => $val) break;

So mit $key enthalten den ersten Schlüssel, aber das scheint ineffizient. Hat jemand eine bessere Lösung?

10voto

Pupil Punkte 23545

Auch dies könnte eine Lösung sein:

$yourArray = array('first_key'=> 'First', 2, 3, 4, 5);
$first_key = current(array_flip($yourArray));
echo $first_key;

Ich habe es getestet und es funktioniert.

Arbeitscode .

5voto

PrinsEdje80 Punkte 449

Zur Verbesserung der Lösung von Webmut habe ich die folgende Lösung hinzugefügt:

$firstKey = array_keys(array_slice($array, 0, 1, TRUE))[0];

Die Ausgabe unter PHP 7.1 lautet:

foreach to get first key and value: 0.048566102981567 seconds 
reset+key to get first key and value: 0.11727809906006 seconds 
reset+key to get first key: 0.11707186698914 seconds 
array_keys to get first key: 0.53917098045349 seconds 
array_slice to get first key: 0.2494580745697 seconds 

Wenn ich dies für ein Array der Größe 10000 tue, dann werden die Ergebnisse

foreach to get first key and value: 0.048488140106201 seconds 
reset+key to get first key and value: 0.12659382820129 seconds 
reset+key to get first key: 0.12248802185059 seconds 
array_slice to get first key: 0.25442600250244 seconds 

Die array_keys-Methode hat eine Zeitüberschreitung von 30 Sekunden (bei nur 1000 Elementen war die Zeit für den Rest etwa gleich, aber die array_keys-Methode hatte etwa 7,5 Sekunden).

4voto

voodoo417 Punkte 11530
 $arr = array('key1'=>'value1','key2'=>'value2','key3'=>'key3');
 list($first_key) = each($arr);
 print $first_key;
 // key1

4voto

Salvi Pascual Punkte 1645

Dies ist der einfachste Weg, den ich je gefunden habe. Schnell und nur zwei Zeilen Code :-D

$keys = array_keys($array);
echo $array[$keys[0]];

3voto

Yuriy Petrovskiy Punkte 7458

Der beste Weg, der für mich funktioniert hat, war

array_shift(array_keys($array))

array_keys erhält ein Array von Schlüsseln aus dem ursprünglichen Array und dann array_shift schneidet den Wert des ersten Elements aus. Sie benötigen dafür PHP 5.4+.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X