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

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

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

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

12
задан zaf 17 May 2010 в 14:44
поделиться

3 ответа

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

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

42
ответ дан 2 December 2019 в 02:59
поделиться

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

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

15
ответ дан 2 December 2019 в 02:59
поделиться

Или вот, должно работать.

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

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

1
ответ дан 2 December 2019 в 02:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: