Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get first key in a (possibly) associative array?

Tags:

arrays

php

What's the best way to determine the first key in a possibly associative array? My first thought it to just foreach the array and then immediately breaking it, like this:

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

Thus having $key contain the first key, but this seems inefficient. Does anyone have a better solution?

like image 230
Alex S Avatar asked Jun 22 '09 18:06

Alex S


People also ask

How do you get the first key of an associative array?

Starting from PHP 7.3, there is a new built in function called array_key_first() which will retrieve the first key from the given array without resetting the internal pointer. Check out the documentation for more info. You can use reset and key : reset($array); $first_key = key($array);

Which key is used in associative array?

Example: In Associative arrays in PHP, the array keys() function is used to find indices with names provided to them, and the count() function is used to count the number of indices.

What is array_keys () used for?

The array_keys() function returns all the keys of an array. It returns an array of all the keys in array.

How do you find the associative value of an array?

You can use the PHP array_values() function to get all the values of an associative array.


1 Answers

2019 Update

Starting from PHP 7.3, there is a new built in function called array_key_first() which will retrieve the first key from the given array without resetting the internal pointer. Check out the documentation for more info.


You can use reset and key:

reset($array); $first_key = key($array); 

It's essentially the same as your initial code, but with a little less overhead, and it's more obvious what is happening.

Just remember to call reset, or you may get any of the keys in the array. You can also use end instead of reset to get the last key.

If you wanted the key to get the first value, reset actually returns it:

$first_value = reset($array); 

There is one special case to watch out for though (so check the length of the array first):

$arr1 = array(false); $arr2 = array(); var_dump(reset($arr1) === reset($arr2)); // bool(true) 
like image 86
Blixt Avatar answered Nov 04 '22 21:11

Blixt