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

Я часто использую следующее, чтобы получить второе в последнем значении в массиве:

$z=array_pop(array_slice($array,-2,1));

Мне не хватает функции php, чтобы сделать это за один раз или это лучшее, что у меня есть?

Ответ 1

end($array);
$z = prev($array);

Это более эффективно, чем ваше решение, потому что оно зависит от внутреннего указателя массива. Ваше решение делает необработанную копию массива.

Ответ 2

Для числовых индексированных последовательных массивов попробуйте $z = $array[count($array)-2];

Изменить: для более общей опции просмотрите ответ Artefecto.

Ответ 3

Или здесь, должен работать.

$reverse = array_reverse( $array );
$z = $reverse[1];

Я использую это, если мне это нужно:)