2010-08-28 20 views

risposta

39

$n è uguale al numero di elementi che si desidera alla fine.

$arr = array_slice($old_arr, -$n); 
+1

Grazie! Non riuscivo a trovare quella funzione. – Dataflashsabot

0

È possibile utilizzare http://us2.php.net/array_slice.

$new = array_slice($old, $n); 

Tuttavia, $n è l'offset per avviare la fetta, in modo per calcolarlo, si avrebbe bisogno di sottrarre questo dal lunghezza dell'array: $n = count($old) - $target_size.

+4

Oppure leggi la documentazione che hai collegato e rendi conto che gli offset negativi iniziano alla fine dell'array. 'Se l'offset è non negativo, la sequenza inizierà da quell'offset nell'array. Se l'offset è negativo, la sequenza inizierà così lontano dalla fine dell'array – Femaref

3

È possibile utilizzare array_slice:

$arr = array_slice($old_arr, -$n, $n, true); 

Se gli indici degli array sono significativi a voi, ricordate che array_slice si azzera e riordinare gli indici degli array numerici. È necessario il flag preserve_keys (4 ° parametro) impostato su true per evitare questo.

Problemi correlati