PHP es un lenguaje basado en servidor para crear aplicaciones web interactivas y representar el contenido del usuario en la demanda . Es compatible con una gran variedad de clases de colección de datos en su construcción array , incluyendo matrices indexadas y matrices asociativas . Con un gran número de usuarios , el rendimiento de su código puede ser un problema . Aunque las matrices asociativas no requieren importantes gastos CPU , necesitan más memoria para almacenar en la memoria RAM como su programa se está ejecutando . Matrices indexadas
Una matriz indexada estándar en PHP y otros lenguajes contiene una serie de índices de valor posteriores asignadas a valores de datos. Un valor de datos se accede haciendo referencia al índice o posición en la matriz
$ my_array = array ( 1 , 2 , 3 , 4 , 5 ) .
Acceso al elemento "$ my_array [ 0 ] " devuelve el valor 1 . Los conjuntos indexados son los mejores para almacenar y acceder a datos estructurados. Sería ineficaz para hacer lo siguiente , ya que podría llenar los vacíos en los valores del índice , ocupando una gran cantidad de memoria :
$ my_array [ ] = 7 , $ my_array [ 13 ] = 5 ; $ my_array [ 76 ] = -4 ;
arrays asociativos
a diferencia de los arrays indexados , PHP arrays asociativos contiene una serie de pares clave-valor. Los valores de datos se accede mediante una referencia a la llave que puede ser una cadena única o un valor numérico . El ejemplo anterior puede ser ineficaz mejor escrito como una matriz asociativa :
$ my_array ( 0 = > 5 , 13 = > 5 , 75 = > -4 ), $ my_array ( "uno" = > 1 , "dos" = > 2 , " diecisiete " = > 17 ) ;
CPU Performance
PHP está optimizado para el procesamiento de cadenas. Tener una cadena como clave para una matriz asociativa no produce tanta sobrecarga . Al acceder a un elemento de una matriz asociativa de PHP, la matriz no se busca de principio a fin de determinar si alguna de las claves del partido. En cambio, una llave en un asociativas correlaciones de matrices a un valor del índice , sin sobrecarga adicional en el tiempo de consulta sobre matrices indexadas .
Memoria de interpretaciones
Desde PHP arrays asociativos tienda un par clave-valor , en comparación con solamente un valor , se requiere sobrecarga de memoria adicional, el programa utiliza el espacio en la memoria RAM durante la ejecución , en comparación con los arrays indexados. Esta memoria adicional es normalmente insignificante a menos que estés usando matrices muy grandes . En este caso , puede ser prudente dividir matrices muy grandes en un subconjunto de las matrices que se puede acceder cuando sea necesario.