2011-09-20 8 views

risposta

21

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] 
+4

Cosa dire di '$ end = current (array_slice ($ array, -1));' invece dell'approccio 'list' per ottenere l'unico elemento di un array? –

+0

sì, bello :) aggiunto in risposta – arnaud576875

+0

Cool grazie. Speravo che ci fosse qualche funzione o approccio che non stavo trovando. – Joren

2

Ehm ... che dire reset()ting dopo aver utilizzato end()?

$lastItem = end($myArr); 
reset($myArr); 
+1

perché cambia il puntatore interno e OP sembra non voler cambiare il puntatore interno? :) – arnaud576875

+0

@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. –

-4
end($my_array); 

non vedo nulla di male nel cambiare puntatore interno. Nessuno lo sta utilizzando in questi giorni comunque

+6

Ancora con una risposta sarcastica senza leggere la domanda. Dovresti davvero smetterlo. –

+0

sai che è il problema della pistola più veloce, lol. ancora non vedo alcun punto nella domanda, anche dopo averlo letto attraverso –

+0

@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. –

0

Purtroppo

list($end) = array_slice($array, -1); 

non funziona con gli array associativi. Quindi io uso

function pop_array_nondestructive($array) 
    { 
    return end($array); 
    } 
0
<?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]; 
} 
?> 
Problemi correlati