Меню Закрыть

Php ключ последнего элемента массива

Содержание

Есть ли лучший способ сделать следующее:

Это даст ключ последнего элемента массива add.

Есть ли лучший способ сделать это?

4 ответа

Вы также можете сделать:

Но я думаю, что ваш путь дает понять, что вы хотите сделать, чтобы вы могли взломать что-то вроде:

0 gradbot [2008-10-20 21:05:00]

Проще говоря. Оба конца и ключа — это время Big O (1). Любой другой способ замедляет ваш код и добавляет сложности.

Если вы можете гарантировать, что ваш массив не будет иметь никаких числовых ключей и что вы не собираетесь удалять какие-либо ключи, то последний элемент, добавленный в ваш массив, будет

Если вам действительно нужно отслеживать последний добавленный ключ, вы можете придумать схему, чтобы придумать свои собственные ключи, которые гарантированно будут уникальными. таким образом, вы всегда будете иметь последний добавленный ключ с момента его создания.

В PHP нет специальной функции для этого, поэтому я думаю, что ваш путь — самый эффективный способ сделать это. Для удобства чтения вы можете поместить его в функцию, называемую array_last_key().

array_key_last — Получает последний ключ массива

Описание

Получить последний ключ заданного массива array , не затрагивая внутренний указатель массива.

Список параметров

Возвращаемые значения

Возвращает последний ключ массива array , если он не пустой; NULL в противном случае.

Смотрите также

  • array_key_first() — Получает первый ключ массива
  • end() — Устанавливает внутренний указатель массива на его последний элемент

User Contributed Notes 8 notes

For PHP if ( ! function_exists ( ‘array_key_last’ ) ) <
/**
* Polyfill for array_key_last() function added in PHP 7.3.
*
* Get the last key of the given array without affecting
* the internal array pointer.
*
* @param array $array An array
*
* @return mixed The last key of array if the array is not empty; NULL otherwise.
*/
function array_key_last ( $array ) <
$key = NULL ;

Читайте также:  Иннополис казань университет отзывы

if ( is_array ( $array ) ) <

end ( $array );
$key = key ( $array );
>

Try to beat this polyfill in terms of performance!

if( ! function_exists ( ‘array_key_last’ ) ) <
function array_key_last (array $array ) <
if( !empty( $array ) ) return key ( array_slice ( $array , — 1 , 1 , true ));
>
>

// Bonus
if (! function_exists ( ‘array_key_first’ )) <
function array_key_first (array $arr ) <
foreach( $arr as $key => $unused ) return $key ;
>
>
?>

For those who loves tested candies;

function array_key_last (array $array ) <
// 100000 iters:

0.068 secs
return key ( array_slice ( $array , — 1 ));
// 100000 iters:

0.070 secs
return key ( array_reverse ( $array ));
// 100000 iters:

0.088 secs
return array_keys ( $array )[ count ( $array ) — 1 ] ?? null ;
>
?>

This polyfill works for PHP 5.6+.
It is a slight modification of "wes at nospam dot example dot org"’s example:

if( ! function_exists ( ‘array_key_first’ ) ) <

function array_key_first (array $array ) <

if( ! function_exists ( ‘array_key_last’ ) ) <

function array_key_last (array $array ) <

// the last 2 args to array_slice are crucial
return array_key_first ( array_slice ( $array , — 1 , null , true ));
>
>

У меня имеется такой массив:

Мне необходимо получить номер последнего ключа.
Тоисть необходимо получить номер: 4

  • Вопрос задан более года назад
  • 658 просмотров

array_pop( array_keys( $arr))

  1. array_keys() вернет массив ключей;
  2. array_pop() вернет значение последнего элемента массива.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.