PHP är ett server -baserat språk för att skapa interaktiva webbapplikationer och gör användaren innehåll på efterfrågan . Den stöder en mängd datainsamling klasser i sin array konstruktionen , inklusive indexerade arrayer och associativa arrayer . Med ett stort antal användare , kan resultatet av din kod att bli ett problem . Även associativa arrayer inte kräver betydande CPU overhead , behöver de mer minne för att lagra i RAM som ditt program körs . Indexerade arrayer
En vanlig indexerad array i PHP och andra språk innehåller en serie av följande värde index mappas till datavärden . En data värde nås genom att referera till index , eller position i arrayen $ my_array = array ( 1 , 2 , 3 , 4 , 5 ) katalog
, .
Åtkomst elementet " $ my_array [ 0 ] " returnerar värdet 1 . Indexerade arrayer är bäst för att lagra och komma strukturerade data . Det vore ineffektivt att göra följande , eftersom det skulle fylla i luckorna i indexvärden , tar upp en mycket stor mängd minne :
$ my_array [ ] = 7 ; $ my_array [ 13 ] = 5 ; $ my_array [ 76 ] = -4 ,
associativa arrayer
i motsats till indexerade arrayer , PHP associativa arrayer innehåller en serie av nyckel - värde-par . De datavärden nås genom att referera den nyckel som kan vara antingen en unik sträng eller ett numeriskt värde . Den ineffektiva exemplet ovan kan bättre skriven som en associativ array :
$ my_array ( 0 = > 5 , 13 = > 5 , 75 = > -4 ) , $ my_array ( " en " = > 1 , " två " = > 2 , " sjutton " = > 17 ) , är
CPU Performance
PHP optimerad för behandling av strängar. Att ha en sträng som nyckel för en associativ array producerar inte mycket overhead . När du öppnar ett element i en associativ array i PHP , är arrayen inte sökte från början till slut för att avgöra om någon av knapparna matchen . Istället , en nyckel i en associativ array kartor till ett indexvärde , utan extra omkostnader i lookup tid över indexerade arrayer .
Minne Prestanda
Eftersom PHP associativa arrayer Store ett nyckel - värde-par , i motsats till endast ett värde , kräver de extra minne overhead , använder utrymmet ditt program i RAM när du kör , jämfört med indexerade arrayer . Denna extra minne är normalt försumbar om du använder mycket stora matriser . I detta fall kan det vara klokt att dela upp mycket stora matriser till en delmängd av matriser som kan nås vid behov .