2012-01-26 9 views
19

È possibile utilizzare quanto segue per ottenere il valore dell'ultimo elemento di $array. Come posso ottenere un riferimento a quell'oggetto?Ottenere un riferimento all'ultimo elemento di un array

$last_item = end($array); 

Gli elementi di $array sono array indicizzati.

+0

http: //www.php .net/manual/it/function.end.php # 24804 –

risposta

35
end($array); 
$referenceToLastElement = &$array[key($array)]; 
+0

È interessante. Mi chiedo se avrebbe prestazioni migliori rispetto all'approccio nella risposta accettata. –

+1

@EmanuilRusev: Funzionerebbe meglio dato che funzionerebbe correttamente su qualsiasi array. – Jon

+0

È più veloce del metodo count()? –

-1
list($last_key,$last_value) = each(array_slice($array,-1,1,true)); 

numero Tentativo 2?

$last_item = &$array[array_pop(array_keys($array))]; 

Ciò fornisce un riferimento variabile all'ultimo elemento dell'array.

+0

Non capisco. Non ho bisogno né della chiave dell'ultimo elemento, né del suo valore - solo un riferimento. –

+0

Non sono sicuro di capire cosa intendi con "solo un riferimento". Avrò un'altra prova Vedi la modifica. –

2

count() vi darà la lunghezza della matrice, che è possibile applicare un po 'di semplice aritmetica per ottenere un riferimento all'ultimo elemento dell'array:

$array = array(
    array('jkl' => '456'), 
    array('abc' => '456'), 
); 
print_r($array); 
$last_item = &$array[count($array) - 1]; 
$last_item['abc'] = '123'; 
print_r($array); 
+0

Questo è il tipo di risposta che speravo. –

+0

Nessun problema, felice di aiutare! – leepowers

+7

Funzionerà solo se la matrice è indicizzata con una sequenza intera non interrotta a partire da 0 - un grande "se". – Jon

Problemi correlati