У меня есть массив, который структурирован следующим образом:
[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 )
попробуй использовать
end($array);
$last = array_slice($array, -1, 1, true);
См. http://php.net/array_slice для получения подробной информации о том, что означают аргументы.
PS В отличие от других ответов, этот фактически делает то, что вы хотите. 🙂
Вы можете использовать end
для продвижения внутреннего указателя до конца или array_slice
чтобы получить массив, содержащий только последний элемент:
$last = end($arr); $last = current(array_slice($arr, -1));
Если у вас есть массив
$last_element = array_pop(array);
Как сказал Гумбо,
<?php $fruits = array('apple', 'banana', 'cranberry'); echo end($fruits); // cranberry ?>
// 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
Другое холодное решение:
$value = $arr[count($arr) - 1];
Вышеуказанное будет подсчитывать количество значений массива, вычитать 1 и затем вернуть значение.
Примечание. Это можно использовать, только если ваши ключи массива являются числовыми.
Поскольку ключ нужен, принятое решение не работает.
Эта:
end($array); return array(key($array) => array_pop($array));
вернется точно в качестве примера в вопросе.