PHP 8.4.2 Released!

end

(PHP 4, PHP 5, PHP 7, PHP 8)

endPositioniert den internen Zeiger eines Arrays auf dessen letztes Element

Beschreibung

end(array|object &$array): mixed

end() rückt den internen Zeiger von array bis zum letzten Element vor und gibt dessen Wert zurück.

Parameter-Liste

array

Das Array. Das Array wird per Referenz übergeben, weil es von der Funktion bearbeitet wird. Das bedeutet, dass der Funktion eine echte Variable übergeben werden muss und nicht beispielsweise der Rückgabewert einer Funktion.

Rückgabewerte

Gibt den Wert des letzten Arrayelements zurück oder false bei einem leeren Array.

Changelog

Version Beschreibung
8.1.0 Bei Objekten ist die Verwendung dieser Funktion veraltet. Stattdessen sollte entweder das Objekt vorher mit get_mangled_object_vars() in ein Array umgewandelt werden oder es sollten die Methoden einer Klasse verwendet werden, die Iterator implementiert, z. B. ArrayIterator.
7.4.0 Instanzen von SPL-Klassen werden nun wie leere Objekte behandelt, die keine Eigenschaften haben, anstatt die Iterator-Methode aufzurufen, die den gleichen Namen wie diese Funktion hat.

Beispiele

Beispiel #1 end()-Beispiel

<?php

$fruits
= array('apple', 'banana', 'cranberry');
echo
end($fruits); // cranberry

?>

Siehe auch

  • current() - Liefert das aktuelle Element eines Arrays
  • each() - Liefert das aktuelle Schlüssel-Wert-Paar eines Arrays und rückt den Arrayzeiger vor
  • prev() - Setzt den internen Arrayzeiger um ein Element zurück
  • reset() - Setzt den internen Zeiger eines Arrays auf sein erstes Element
  • next() - Rückt den internen Arrayzeiger vor
  • array_key_last() - Ermittelt den letzten Schlüssel eines Arrays

add a note

User Contributed Notes 5 notes

up
135
franz at develophp dot org
14 years ago
It's interesting to note that when creating an array with numeric keys in no particular order, end() will still only return the value that was the last one to be created. So, if you have something like this:

<?php
$a
= array();
$a[1] = 1;
$a[0] = 0;
echo
end($a);
?>

This will print "0".
up
35
jasper at jtey dot com
18 years ago
This function returns the value at the end of the array, but you may sometimes be interested in the key at the end of the array, particularly when working with non integer indexed arrays:

<?php
// Returns the key at the end of the array
function endKey($array){
end($array);
return
key($array);
}
?>

Usage example:
<?php
$a
= array("one" => "apple", "two" => "orange", "three" => "pear");
echo
endKey($a); // will output "three"
?>
up
24
jorge at REMOVETHIS-2upmedia dot com
12 years ago
If all you want is the last item of the array without affecting the internal array pointer just do the following:

<?php

function endc( $array ) { return end( $array ); }

$items = array( 'one', 'two', 'three' );
$lastItem = endc( $items ); // three
$current = current( $items ); // one
?>

This works because the parameter to the function is being sent as a copy, not as a reference to the original variable.
up
31
Anonymous
22 years ago
If you need to get a reference on the first or last element of an array, use these functions because reset() and end() only return you a copy that you cannot dereference directly:

<?php
function first(&$array) {
if (!
is_array($array)) return &$array;
if (!
count($array)) return null;
reset($array);
return &
$array[key($array)];
}

function
last(&$array) {
if (!
is_array($array)) return &$array;
if (!
count($array)) return null;
end($array);
return &
$array[key($array)];
}
?>
up
12
ivijan dot stefan at gmail dot com
10 years ago
I found that the function end() is the best for finding extensions on file name. This function cleans backslashes and takes the extension of a file.

<?php
private function extension($str){
$str=implode("",explode("\\",$str));
$str=explode(".",$str);
$str=strtolower(end($str));
return
$str;
}

// EXAMPLE:
$file='name-Of_soMe.File.txt';
echo
extension($file); // txt
?>

Very simple.
To Top