Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/04/2014, 09:27
Avatar de stramin
stramin
 
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: arrays: Allowed memory size of x bytes exhausted

Cita:
Iniciado por Qazser Ver Mensaje
24mb son 25165824bytes, tal como indica php en su error.

El asunto es que cada cifra del índice es un espacio en la memoria, es como una estanteria con libros.

Una estanteria tiene 10 filas, las primeras desde abajo hacia arriba estan vacias, la 9 y la 10 tienen libros, pero tu intenas meter un libro en la fila 11....Si, las filas de abajo estan vacias, pero y las podrias usar si usarias un indice mas bajo.

No lo he probado, pero y que tal si guardar la cifra como string....no es necesario que pongas una p delante como has puesto en tu primer mensaje, sino tan solo usa comillas simples para delimitar el numero. Teóricamente deberia servir.

Luego como php es muy pasivo con los tipos de datos, cuando saques esa posicion y hagas operaciones numericas posteriormente (como convertirlo a fecha real) no deberia ser un problema que php vea que el string es un numero.

EDIT;

algo así

Código PHP:
$arr['a']='texto';
$arr['a']['24903655']=1.133
Si, lo intenté pero sigue dando el mismo error, supongo que se convierte a número, por eso le puse esa 'p' al principio, también intenté con:

Código PHP:
$arr['a']='texto';
$arr['a'][(string)'24903655']=1.133
Cita:
Iniciado por h2swider Ver Mensaje
Eso es un error. Si bien el arreglo cuenta con 3 indices, el sistema operativo le reserva memoria para poder completar desde el indice 0 al maximo.

Si bien PHP es bastante flexible con los arrays, estos siguen manteniendo este tipo de limitaciones.

Saludos!
Entiendo, entonces es como había pensado, ser reserva la memoria aunque solo haya guardado 1 variable, tal como pasa en C, esto es un tema bastante interesante, por lo que veo me convendrá guardar todos mis arreglos con indices alfanuméricos para ahorrar memoria.

Se que también podría aumentar la memoria disponible pero creo que será más eficiente no darle más carga al servidor.

Gracias a todos por las respuestas, he aprendido algo nuevo :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D