Come ottenere il primo elemento di un array? E tra tutti i modi possibili, qual è il migliore?
Partiamo da quest’array:
array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )
Noi in questo caso, vogliamo ottenere ‘apple’.
4 Modi per ottenere il primo elemento di un’array php
1. array_shift()
Utilizzare array_shift() è sicuramente la prima cosa che ci potrebbe venire in mente, ma “costa” O(n), ovvero legge tutti gli elemente dell’array prima di restituire il risultato.
array_shift(array_values($array));
Per array di grandi dimensioni non è sicuramente la soluzione migliore.
2. array_pop() e array_reverse()
Utilizzare array_pop() combinato ad’array_reverse() è una soluzione che spreca meno risorse, infatti è O(1) ovvero il “costo” dell’operazione è costante al di là della grandezza dell’array.
array_pop(array_reverse($array));
Sicuramente il metodo più efficente.
3. Altre opzioni:
Se la modifica (nel senso di reimpostare i puntatori di array) di $array non è un problema, potresti usare:
reset($array);
reset() riavvolge il puntatore interno dell’array al primo elemento e restituisce il valore del primo elemento dell’array, o FALSE se l’array è vuoto.
Questo dovrebbe essere teoricamente più efficiente, se è necessaria una “copia” di array:
array_shift(array_slice($array, 0, 1));
Con PHP 5.4+ (ma potrebbe causare un index error se vuoto):
array_values($array)[0];