Получить последнюю пару ключ-значение в массиве PHP

У меня есть массив, который структурирован следующим образом:

[33] => Array
    (
        [time] => 1285571561
        [user] => test0
    )

[34] => Array
    (
        [time] => 1285571659
        [user] => test1
    )

[35] => Array
    (
        [time] => 1285571682
        [user] => test2
    )

Как я могу получить последнее значение в массиве, но поддерживая индекс [35]?

Результат, который я ищу, таков:

[35] => Array
    (
        [time] => 1285571682
        [user] => test2
    )

Ответ 1

попробуйте использовать

end($array);

Ответ 2

$last = array_slice($array, -1, 1, true);

Подробнее о том, что означают аргументы, см. http://php.net/array_slice.

P.S. В отличие от других ответов, этот фактически делает то, что вы хотите.: -)

Ответ 3

Вы можете использовать end для продвижения внутреннего указателя до конца или array_slice, чтобы получить массив, содержащий только последний элемент:

$last = end($arr);
$last = current(array_slice($arr, -1));

Ответ 4

Если у вас есть массив

$last_element = array_pop(array);

Ответ 5

Пример 1:

$arr = array("a"=>"a", "5"=>"b", "c", "key"=>"d", "lastkey"=>"e");
print_r(end($arr));

Вывод= e


Пример 2:

ARRAY без ключей.

$arr = array("a", "b", "c", "d", "e");
print_r(array_slice($arr, -1, 1, true));
// output is = array( [4] => e ) 

Пример 3:

ARRAY с ключом (ами)

$arr = array("a"=>"a", "5"=>"b", "c", "key"=>"d", "lastkey"=>"e");
print_r(array_slice($arr, -1, 1, true));
// output is = array ( [lastkey] => e ) 

Пример 4:

Если ваши ключи массива, такие как: [0] [1] [2] [3] [4]... и т.д. Вы можете использовать это:

$arr = array("a","b","c","d","e");
$lastindex = count($arr)-1;
print_r($lastindex);

Вывод= 4


Пример 5: Но если вы не уверены!

$arr = array("a"=>"a", "5"=>"b", "c", "key"=>"d", "lastkey"=>"e");
$ar_k = array_keys($arr);
$lastindex = $ar_k [ count($ar_k) - 1 ];
print_r($lastindex);

Вывод= lastkey


Ресурсы:

  1. https://php.net/array_slice
  2. https://www.php.net/manual/en/function.array-keys.php
  3. https://www.php.net/manual/en/function.count.php
  4. https://www.php.net/manual/en/function.end.php

Ответ 6

Как сказал Гумбо,

<?php

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

?>

Ответ 7

Еще одно холодное решение:

$value = $arr[count($arr) - 1];

Вышеуказанное будет подсчитывать количество значений массива, вычитать 1 и затем вернуть значение.

Примечание. Это можно использовать, только если ваши ключи массива являются числовыми.

Ответ 8

Поскольку ключ нужен, принятое решение не работает.

Это:

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

вернется точно в качестве примера в вопросе.

Ответ 9

"SPL-way":

$splArray = SplFixedArray::fromArray($array);
$last_item_with_preserved_index[$splArray->getSize()-1] = $splArray->offsetGet($splArray->getSize()-1);

Подробнее о SplFixedArray и о том, почему он в некоторых случаях (особенно с массивными данными больших индексов) предпочтительнее, чем базовый array, здесь => Класс SplFixedArray.