Frage Hol dir das erste Element eines Arrays


Ich habe ein Array:

array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )

Ich möchte das erste Element dieses Arrays erhalten. Erwartetes Ergebnis: Zeichenfolge  apple 

Eine Voraussetzung: es kann nicht mit dem Vorbeigehen gemacht werden, damit array_shift ist keine gute Lösung.

Wie kann ich das machen?


852
2017-12-17 12:26


Ursprung


Antworten:


Ursprüngliche Antwort, aber teuer (O (n)):

array_shift(array_values($array));

In O (1):

array_pop(array_reverse($array));

Bearbeitet mit Vorschlägen von Kommentaren für andere Anwendungsfälle etc ...

Wenn Sie (im Sinne des Zurücksetzens von Array-Zeigern) von $array ist kein Problem, Sie könnten verwenden:

reset($array);

Dies sollte theoretisch effizienter sein, wenn ein Array "kopieren" benötigt wird:

array_shift(array_slice($array, 0, 1)); 

Mit PHP 5.4+ (könnte aber einen Indexfehler verursachen, wenn leer):

array_values($array)[0];

1095
2017-09-22 16:04



Wie Mike schon sagte (der einfachste Weg):

$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )
echo reset($arr); //echoes "apple"

Wenn du den Schlüssel bekommen willst: (führe es nach dem Reset aus)

echo key($arr); //echoes "4"

Von PHP-Dokumentation:

gemischt  zurücksetzen (Array & $ -Array );

Beschreibung:

Zurücksetzen () spult zurück Arrays interner Zeiger auf das erste Element und gibt den Wert des ersten Array-Elements zurück, oder FALSE, wenn das Array ist   leer.


719
2017-11-15 03:33



$first_value = reset($array); // First Element's Value
$first_key = key($array); // First Element's Key

Hoffe das hilft. :)


243
2018-06-08 06:01



$arr = array( 9 => 'apple', 7 => 'orange', 13 => 'plum' );
echo reset($arr); // echoes 'apple'

Wenn Sie die aktuelle Zeigerposition nicht verlieren möchten, erstellen Sie einfach einen Alias ​​für das Array.


85
2017-12-17 12:31



Sie können Nth Element mit einem Sprachkonstrukt "list" erhalten:

// 1st item
list($firstItem) = $yourArray;

// 1st item from an array that is returned from function
list($firstItem) = functionThatReturnsArray();

// 2nd item
list( , $secondItem) = $yourArray;

Mit der array_keys-Funktion können Sie das gleiche für Schlüssel tun:

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

63
2018-04-12 13:40



einfach current($array) kann lösen


52
2017-09-12 08:07



PHP 5.4+:

array_values($array)[0];

50
2018-04-23 14:50



Annehmen:

$array = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );

Benutz einfach:

$array[key($array)]

um das erste Element zu erhalten oder

key($array)

um den ersten Schlüssel zu bekommen.

Oder Sie können die erste Verbindung aufheben, wenn Sie sie entfernen möchten.


26
2017-08-09 12:23



Einige Arrays funktionieren nicht mit Funktionen wie list, reset oder current. Vielleicht handelt es sich um "falsche" Arrays, die zum Beispiel ArrayIterator implementieren.

Wenn Sie unabhängig vom Array den ersten Wert ziehen möchten, können Sie einen Iterator kurzschließen:

foreach($array_with_unknown_keys as $value) break;

Ihr Wert wird dann in verfügbar sein $value und die Schleife wird nach der ersten Iteration brechen. Dies ist effizienter als das Kopieren eines möglicherweise großen Arrays in eine Funktion wie array_unshift (array_values ​​($ arr)).

Sie können den Schlüssel auch auf diese Weise greifen:

foreach($array_with_unknown_keys as $key=>$value) break;

Wenn Sie dies von einer Funktion aus aufrufen, kehren Sie einfach vorzeitig zurück:

function grab_first($arr) {
    foreach($arr as $value) return $value;
}

19
2017-07-22 20:41



Mach einfach:

array_shift(array_slice($array,0,1));

13
2017-12-15 10:38