it-roy-ru.com

Получить последнюю пару ключ-значение в 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
    )
46
greenbandit

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

end($array);
152
Alex Pliutau
$last = array_slice($array, -1, 1, true);

Смотрите http://php.net/array_slice для подробностей о том, что означают аргументы.

Постскриптум В отличие от других ответов, этот на самом деле делает то, что вы хотите. :-)

69
salathe

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

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

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

$last_element = array_pop(array);
4
Govinda Yadav

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

<?php

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

?>
2
ipalaus
// if your array keys lile
// 0 1 2 3 4 ...

$lastindex= count($ar)-1;

// but if you are not sure

$ar_k=array_keys($ar);
$lastindex=$ar_k[count($ar_k)-1];

// will work
2
Ali

Другое решение может быть:

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

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

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

0
Yas

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

Это:

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

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

0
jmary