PHP er et server - basert språk for å lage interaktive web-applikasjoner og gjengivelse bruker innhold on demand . Den støtter en rekke datainnsamling klasser i sitt utvalg konstruksjon , inkludert indekserte arrays og assosiative matriser . Med et stort antall brukere , kan ytelsen av koden din bli et problem. Selv assosiative matriser ikke krever betydelig CPU overhead , de trenger mer minne til å lagre i RAM som programmet kjører . Indekserte Arrays
En standard indeksert array i PHP og andre språk inneholder en rekke senere verdi indekser tilordnet dataverdier . En data verdi nås ved å referere indeksen, eller stilling i rekken
$ my_array = array ( 1 , 2, 3 , 4, 5); .
Tilgang elementet " $ my_array [ 0 ] " returnerer verdien 1 . Indekserte arrays er best for lagring og bruk av strukturerte data . Det ville være ineffektivt å gjøre følgende , som det ville fylle ut hullene i indeksverdier , tar opp en veldig stor mengde minne : en
$ my_array [ ] = 7 , $ my_array [ 13 ] = 5 ; $ my_array [ 76 ] = -4 ,
assosiative arrays
i motsetning til indeksert matriser , PHP assosiative matriser inneholder en rekke nøkkel - verdi-par . Dataene verdiene nås ved å referere nøkkelen som kan enten være en unik streng eller numerisk verdi . Den ineffektive eksempelet ovenfor kan bedre skrevet som en assosiativ array : en
$ my_array ( 0 = > 5 , 13 = > 5 , 75 = > -4 ), $ my_array ("en " = > 1 , "to" = > 2 , " sytten " = > 17 ) ;
CPU resultatutvikling
PHP er optimalisert for behandling av strenger. Å ha en streng som nøkkelen for en assosiativ array produserer ikke mye overhead . Når du åpner et element i en assosiativ array i PHP, er matrisen ikke søkte fra begynnelse til slutt å finne ut om noen av tastene kamp . I stedet , en nøkkel i en assosiativ array kartene til en indeksverdi , uten ekstra overhead i oppslag tid over indekserte arrays.
Minneytelse
Siden PHP assosiative arrays butikken en nøkkel- verdi-par , i motsetning til bare en verdi , de krever mer minne overhead , bruker plass programmet i RAM mens du kjører , sammenlignet med indekserte arrays. Denne ekstra minne er normalt ubetydelig med mindre du bruker svært store matriser . I dette tilfellet kan det være fornuftig å splitte opp svært store matriser til en undergruppe av arrays som kan nås ved behov .