array_pop() lo rimuove dall'array. end() modifica il puntatore interno.Ottieni l'ultimo elemento di un array senza modificare l'array in PHP?
è l'unico modo davvero qualche cludge come:
$my_array[array_pop(array_keys($my_array))];
?
array_pop() lo rimuove dall'array. end() modifica il puntatore interno.Ottieni l'ultimo elemento di un array senza modificare l'array in PHP?
è l'unico modo davvero qualche cludge come:
$my_array[array_pop(array_keys($my_array))];
?
Questo funziona:
list($end) = array_slice($array, -1);
array_slice($array, -1)
restituisce un array con solo l'ultimo elemento e list()
assegna il primo elemento del risultato di fetta di $end
.
@Alin Purcaru ha suggerito questo nei commenti:
$end = current(array_slice($array, -1));
Dal PHP 5.4, questo funziona anche:
array_slice($array, -1)[0]
Cosa dire di '$ end = current (array_slice ($ array, -1));' invece dell'approccio 'list' per ottenere l'unico elemento di un array? –
sì, bello :) aggiunto in risposta – arnaud576875
Cool grazie. Speravo che ci fosse qualche funzione o approccio che non stavo trovando. – Joren
Ehm ... che dire reset()
ting dopo aver utilizzato end()
?
$lastItem = end($myArr);
reset($myArr);
perché cambia il puntatore interno e OP sembra non voler cambiare il puntatore interno? :) – arnaud576875
@arnaud Sono consapevole che reimposta il puntatore, ma almeno lo pone all'inizio che è l'impostazione predefinita. La tua soluzione sarebbe più appropriata per non ripristinarla affatto. –
end($my_array);
non vedo nulla di male nel cambiare puntatore interno. Nessuno lo sta utilizzando in questi giorni comunque
Ancora con una risposta sarcastica senza leggere la domanda. Dovresti davvero smetterlo. –
sai che è il problema della pistola più veloce, lol. ancora non vedo alcun punto nella domanda, anche dopo averlo letto attraverso –
@Alin, qual è il problema qui. Anche se in ritardo rispetto al gioco, è una risposta valida e il punto è che si tratta di una funzione sottoutilizzata. –
Purtroppo
list($end) = array_slice($array, -1);
non funziona con gli array associativi. Quindi io uso
function pop_array_nondestructive($array)
{
return end($array);
}
<?php
/**
* Return last element from array without removing that element from array.
* https://github.com/jdbevan/PHP-Scripts/
*
* @param array $array The array to get the last element from
* @return mixed False if $array is not an array or an empty array, else the key of the last element of the array.
*/
function array_peek($array) {
if (!is_array($array)) return false;
if (count($array)<1) return false;
$last_key = array_pop(array_keys($array));
return $array[$last_key];
}
?>
ad essere onesti, ciò che è alla fine * * è arbitraria in base alle vostre chiavi. –