When writing code it is very common that you have to deal with collections of objects. It can be a set of customer names or the number of posts created by different users. Storing this data in an array helps us process the entire collection by iterating over it one by one.
PHP comes with two different types of arrays to help you store data. You can use a simple numeric array or create an associative array. Numeric arrays are useful when you just want to store a list of items, such as a list of customers. Associative arrays are useful when you want to store key-value pairs, such as a list of customer IDs and the total value of products purchased by each person.
From time to time, you must directly access elements in the array you created. In this quick tip, I'll show you how to get the first or last element of an array in PHP.
Getting the first element of a simple numeric array is easy. Just get the element with index 0!
<?php $names = ["Adam", "Monty", "Sajal", "Andrew"]; // Output — Adam echo $names[0]; ?>
However, this does not work with associative arrays.
One of the most efficient ways to get the first element of a numeric or associative array in PHP is to use the reset()
function. This function sets the internal pointer of the array to its first element and returns the value of the first element. Here are some examples:
<?php $names = ['Andrew', 'Adam', 'Monty', 'James', 'Amanda', 'Jessica', 'Roy']; $country_capitals = ['Canada' => 'Ottawa', 'Germany' => 'Berlin', 'United States' => 'Washington D.C.', 'China' => 'Beijing', 'India' => 'New Delhi', 'Australia' => 'Canberra']; // Output — Andrew echo reset($names); // Output — Ottawa echo reset($country_capitals); ?>
As you can see, we don't need to know the key of the first element to get its value. All we have to do is pass the array to reset()
.
As I mentioned before, using reset()
will change the internal pointer of the array. If you want to get the first element in an array without changing it, you can use the array_key_first()
function. This will give you the first key of the array, which can be used to get the value of the first element.
<?php $names = ['Andrew', 'Adam', 'Monty', 'James', 'Amanda', 'Jessica', 'Roy']; $country_capitals = ['Canada' => 'Ottawa', 'Germany' => 'Berlin', 'United States' => 'Washington D.C.', 'China' => 'Beijing', 'India' => 'New Delhi', 'Australia' => 'Canberra']; // Output — Andrew echo $names[array_key_first($names)]; // Output — Ottawa echo $country_capitals[array_key_first($country_capitals)]; ?>
One thing you should remember is that array_key_first()
is only available starting with PHP 7.3.
For simple numeric arrays, you can get the last element by calculating its index based on the array length.
<?php $names = ["Adam", "Monty", "Sajal", "Andrew"]; // Output — Andrew echo $names[count($names)-1]; ?>
But again, this doesn't work with associative arrays.
You can use the end()
function in PHP to get the last element of any PHP array. It sets the internal pointer to the last element of the array and returns its value. This makes it similar to the reset()
function we discussed in the previous section.
<?php $names = ['Andrew', 'Adam', 'Monty', 'James', 'Amanda', 'Jessica', 'Roy']; $country_capitals = ['Canada' => 'Ottawa', 'Germany' => 'Berlin', 'United States' => 'Washington D.C.', 'China' => 'Beijing', 'India' => 'New Delhi', 'Australia' => 'Canberra']; // Output — Roy echo end($names); // Output — Canberra echo end($country_capitals); ?>
Just like array_key_first()
, there is a corresponding array_key_last()
function which gives you the last key of the array without modifying it in any way. Once you have the key, you can easily access the last element of the array.
<?php $names = ['Andrew', 'Adam', 'Monty', 'James', 'Amanda', 'Jessica', 'Roy']; $country_capitals = ['Canada' => 'Ottawa', 'Germany' => 'Berlin', 'United States' => 'Washington D.C.', 'China' => 'Beijing', 'India' => 'New Delhi', 'Australia' => 'Canberra']; // Output — Roy echo $names[array_key_last($names)]; // Output — Canberra echo $country_capitals[array_key_last($country_capitals)]; ?>
Starting with PHP 7.3, the array_key_last()
function is also available.
There are also many ways to get the first or last array of elements in PHP. For example, you can use array_values()
and get the first or last element. However, if you don't need any extra information in the array, use reset()
, array_key_first()
, end()
and array_key_last( )
function will be more efficient.
The above is the detailed content of Get first and last element of PHP array. For more information, please follow other related articles on the PHP Chinese website!