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?

35voto

ivanaugustobd Punkte 466

Für 2018+

Beginnend mit PHP 7.3 gibt es eine array_key_first() Funktion, die genau dies erreicht:

$array = ['foo' => 'lorem', 'bar' => 'ipsum'];
$firstKey = array_key_first($array); // 'foo'

Dokumentation ist verfügbar aquí .

20voto

Martin Vseticka Punkte 26325

Wenn Effizienz für Sie nicht so wichtig ist, können Sie die array_keys($yourArray)[0] in PHP 5.4 (und höher).

Beispiele:

# 1
$arr = ["my" => "test", "is" => "best"];    
echo array_keys($arr)[0] . "\r\n"; // prints "my"

# 2
$arr = ["test", "best"];
echo array_keys($arr)[0] . "\r\n"; // prints "0"

# 3
$arr = [1 => "test", 2 => "best"];
echo array_keys($arr)[0] . "\r\n"; // prints "1"

Der Vorteil gegenüber der Lösung:

list($firstKey) = array_keys($yourArray);

ist, dass Sie die array_keys($arr)[0] als Funktionsparameter (d.h. doSomething(array_keys($arr)[0], $otherParameter) ).

HTH

20voto

Sergiy Sokolenko Punkte 5707
list($firstKey) = array_keys($yourArray);

15voto

Pupil Punkte 23545

Bitte beachten Sie das Folgende:

$yourArray = array('first_key'=> 'First', 2, 3, 4, 5);
$keys   =   array_keys($yourArray);
echo "Key = ".$keys[0];

Arbeitsbeispiel:

12voto

Hamidreza Punkte 1707
$myArray = array(
    2 => '3th element',
    4 => 'first element',
    1 => 'second element',
    3 => '4th element'
);
echo min(array_keys($myArray)); // return 1

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