Каков самый быстрый и самый легкий способ получить последний объект массива, быть ли индексный массив, ассоциативный массив или многомерный массив?
$myArray = array( 5, 4, 3, 2, 1 );
echo end($myArray);
печатает "1"
Множество отличных ответов. Подумайте о написании функции, если вы делаете это более одного раза:
function array_top(&$array) {
$top = end($array);
reset($array); // Optional
return $top;
}
В качестве альтернативы, в зависимости от вашего темперамента:
function array_top(&$array) {
$top = array_pop($array);
$array[] = $top; // Push top item back on top
return $top;
}
( $ array [] = ...
предпочтительнее, чем array_push ( )
, ср. документы .)
Удаляет элемент из конца массива. Если вам нужно сохранить массив в действии, вы можете использовать это, а затем добавить значение обратно в конец массива. $ array [] = $ popped_val
Я бы сказал array_pop
В документации: array_pop
array_pop - Отключить элемент конец массива
Для ассоциативного массива:
$a= array('hi'=> 'there', 'ok'=> 'then');
list($k, $v) = array(end(array_keys($a)), end($a));
var_dump($k);
var_dump($v);
Изменить: также должно работать для массивов числовых индексов