PHP è un linguaggio server-based per la creazione di applicazioni Web interattive e il rendering del contenuto utente su richiesta. Supporta una varietà di classi di raccolta dei dati nel proprio costrutto serie , tra cui array indicizzati che associativi . Con un gran numero di utenti , le prestazioni del vostro codice può diventare un problema . Anche se gli array associativi non richiedono significativi overhead della CPU , essi hanno bisogno di più memoria per memorizzare nella RAM come il vostro programma è in esecuzione . Array indicizzati
Un array indicizzato di serie in PHP e altri linguaggi contiene una serie di indici di valore successive mappati ai valori dei dati . Un valore di dati si accede facendo riferimento all'indice , o la posizione nella matrice
$ my_array = array ( 1 , 2 , 3 , 4 , 5); .
Accesso alla elemento " $ my_array [ 0 ] " restituisce il valore 1 . Gli array indicizzati sono i migliori per l'archiviazione e l'accesso ai dati strutturati . Sarebbe inefficiente di fare quanto segue , come sarebbe colmare le lacune in valori di indice , prendendo una grande quantità di memoria :
$ my_array [ ] = 7; $ my_array [ 13 ] = 5; $ my_array [ 76 ] = -4 ;
array associativi
al contrario di array indicizzati , PHP array associativi contiene una serie di coppie chiave-valore . I valori dei dati sono accessibili facendo riferimento alla chiave che può essere sia una stringa univoca o valore numerico . L'esempio precedente può essere inefficiente meglio scritto come un array associativo :
$ my_array ( 0 = > 5 , 13 = > 5 , 75 = > -4) ; $ my_array ( "uno" = > 1 , " due" = > 2 , " diciassette " = > 17) ;
Prestazioni CPU
PHP è ottimizzato per l' elaborazione di stringhe . Avere una stringa come chiave per un array associativo non produce molto in testa . Quando si accede a un elemento di un array associativo in PHP , la matrice non viene cercato da cima a fondo per determinare se una delle chiavi del match . Invece , una chiave in un associative mappe array per un valore di indice , senza ulteriore sovraccarico in tempo di ricerca su array indicizzati .
Performance Memory
Dal PHP array associativo negozio una coppia chiave-valore , al contrario di un solo valore , che richiede un ulteriore sovraccarico di memoria , il programma utilizza lo spazio in RAM durante l'esecuzione , rispetto agli array indicizzati . Questa memoria aggiuntiva è normalmente trascurabile a meno che non si sta utilizzando molto grandi array . In questo caso , può essere prudente per dividere molto grandi array in un sottoinsieme delle matrici che possono essere accessibili come necessario .