Foros del Web » Programando para Internet » PHP »

UN vector con muchas pocisiones pesa más?

Estas en el tema de UN vector con muchas pocisiones pesa más? en el foro de PHP en Foros del Web. les explico mi situación: engo el siguiente vector: Código PHP: $_vector [ 0 ]= 1 $_vector [ 5500 ]= 1 ; $_vector [ 3300 ]= ...
  #1 (permalink)  
Antiguo 25/10/2008, 12:45
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
UN vector con muchas pocisiones pesa más?

les explico mi situación:

engo el siguiente vector:

Código PHP:
$_vector[0]=1
$_vector
[5500]=1;
$_vector[3300]=1;
$_vector[10000]=1
como veran aparentemente el vector tiene 10.000 pocisiones ( por que el ultimo registro ha puesto el vector en la pocision 10.000. Aunque en realidad sólo he hecho uso de 4 pocisiones.

Esto lo he hecho asi porque las pocisiones ( 0, 5500, 3300, 10000) son ID de productos y el uno significa que el usuario compro ese producto.

Haciendo las cosas de esta manera cuando quiero saber si un usuario compro determinado producto solo basta con:
Código PHP:
if($_vector[$ID_producto]==1){
echo 
"si compro el producto";


esto me ahorra un FOR o un WHILE cada que quiero saber si el usuario compro un producto.

Creo que la manera correcta seria mejor:

Código PHP:
$_vector[0]=0;
$_vector[1]=5500;
$_vector[2]=3300;
$_vector[3]=10000

Asi solo tendria 4 pocisiones ( por tanto aprentemente un vector mas pequño) pero tendria que hacer un WHILE o FOR cada que quiera saber si un usuario compro un producto, por ejemplo:

Código PHP:
for($i=0;$i<=count($_vector);$i++){
if(
$_vector[$i]==$ID_producto){
echo 
"si compro el producto";
}

Ahora no se cual de las dos formas es la correcta. O si ambas lo son. relamente la mas comoda para mi es la primer forma, pero no se si eso hace más lento el script o agota más recursos.

Hasta luego o gracias
__________________
SEO en Medellin
  #2 (permalink)  
Antiguo 25/10/2008, 13:28
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: UN vector con muchas pocisiones pesa más?

hasta donde yo tengo entendido el espacio ocuapdo seria el mismo, pero en el segundo ejemplo seria lo recomendado
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 25/10/2008, 14:42
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: UN vector con muchas pocisiones pesa más?

¿Y por qué no usas arrays asociativos?

Código:
$_vector["$ID_producto"] = 1; //Para indicar que ha comprado el producto

foreach ( $_vector as $key => $elem ) {
    if ( $elem ) echo "Ha comprado $key";
}
  #4 (permalink)  
Antiguo 25/10/2008, 17:59
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Respuesta: UN vector con muchas pocisiones pesa más?

Hola gracias por las respuestas.

precisamente lo que quiero usar es una especie de array asocativo pero temo que la usar indices numericos el servidor guarde espacio en memoria pensando que los indices faltantes podrian llegar a ser usados.

entonces no creen que haya problemas?
__________________
SEO en Medellin
  #5 (permalink)  
Antiguo 25/10/2008, 18:08
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: UN vector con muchas pocisiones pesa más?

Un vector con muchas posiciones como tu dices (Pesa mas) yo diria que requiere mas memoria, la cual estara reservada para ese vector de N elementos. pero es relativo.

Mas elementos + memoria reservada
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #6 (permalink)  
Antiguo 25/10/2008, 20:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: UN vector con muchas pocisiones pesa más?

No es necesario el array que propones tiene 4 elementos, así que es lo mismo para cualquier array, aunque tu uses indices grandes en este caso, siguen siendo 4 elementos por lo que el espacio en disco es el mismo.

Saludos.
  #7 (permalink)  
Antiguo 26/10/2008, 10:19
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Respuesta: UN vector con muchas pocisiones pesa más?

Nuevamente gracias por las respuestas.

veo que las opiniones están divididas.
podemos leer la fundamentación en alguna parte de la documentacion de PHP?

gatorv, ¿cómo podemos estar seguro de ello? no quiciera que mis script acabaran con los recursos del servidor.

GRACIAS
__________________
SEO en Medellin
  #8 (permalink)  
Antiguo 26/10/2008, 12:02
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: UN vector con muchas pocisiones pesa más?

Cita:
Iniciado por mafima Ver Mensaje
podemos leer la fundamentación en alguna parte de la documentacion de PHP?
En la documentación (el manual oficial) se indica explícitamente sobre los arrays: "The indexed and associative array types are the same type in PHP, which can both contain integer and string indices".

Si creas un array asociativo con cadenas de texto como índices, seguramente no habrá muchas dudas sobre el espacio que ocupa en memoria, ya que parece evidente que será según los elementos que asignes. Y si realmente son el mismo tipo de datos (según explica la documetnación), yo creo que un array con índices numéricos ocupará sólo las posiciones de memoria que ocupen los elementos declarados.

Un saludo.
  #9 (permalink)  
Antiguo 26/10/2008, 16:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: UN vector con muchas pocisiones pesa más?

y en dado caso puedes ocupar un script y usar memory_get_usage para obtener cuanta memoria ocupa tu script.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:04.