PHP er et server - baseret sprog til at skabe interaktive web-applikationer og rendering brugerindhold på efterspørgslen. Det understøtter en bred vifte af dataindsamling klasser i sin vifte konstruktion , herunder indekserede arrays og associative arrays . Med et stort antal brugere , kan udførelsen af din kode blive et problem . Selvom associative arrays ikke kræver betydelig CPU overhead, har de brug for mere hukommelse til at gemme i RAM som dit program kører. Indekserede Arrays
En standard indekseret array i PHP og andre sprog indeholder en række efterfølgende værdi indekser kortlagt til dataværdier . En dataværdi tilgås ved at referere til indeks eller position i array
$ my_array = array ( 1, 2, 3, 4, 5) .
Adgang elementet " $ my_array [0] " returnerer værdien 1 . Indekserede arrays er bedst til lagring af og adgang strukturerede data . Det ville være ineffektivt at gøre følgende , da det ville udfylde hullerne i indeksværdier , der tager op en meget stor mængde hukommelse : Hej
$ my_array [] = 7 , $ my_array [13] = 5; $ my_array [76 ] = -4 ,
associative arrays
p Som modsætning til indekseret arrays , PHP associative arrays indeholder en række key- value par. De dataværdier tilgås ved at referere den nøgle, der enten kan være en entydig streng eller numerisk værdi. Det ineffektive eksemplet ovenfor kan bedre skrives som en associativt array : Hej
$ my_array (0 = > 5 , 13 = > 5 , 75 => -4) , $ my_array ( "en" = > 1, "to" => 2, " sytten " => 17)
CPU ydeevne
PHP er optimeret til behandling af strengene . At have en streng som nøglen til en associativt array ikke producerer megen overhead. Når du får adgang et element i et associativt array i PHP, er array ikke søgte fra start til slut for at afgøre, om nogen af tasterne kamp. I stedet en nøgle i en associativ array- kort til en indeksværdi , uden ekstra overhead i opslag tid over indekserede arrays.
Hukommelse ydeevne
Siden PHP associative arrays butik en nøgle - værdi-par , i modsætning til kun en værdi , de kræver ekstra hukommelse overhead, plads dit program bruger i RAM , mens du kører , når der sammenlignes med indekserede arrays. Denne ekstra hukommelse er normalt ubetydelig , medmindre du bruger meget store arrays. I dette tilfælde kan det være klogt at opdele meget store arrays i en delmængde af arrays , der kan tilgås efter behov.