Foros del Web » Programando para Internet » PHP »

Problema con array numerico.

Estas en el tema de Problema con array numerico. en el foro de PHP en Foros del Web. Buenas tardes: Tengo un problema que no se como resolver, declare el siguiente arreglo: Código PHP: $rutas =array( 0 , 0 , 0 , 0 ...
  #1 (permalink)  
Antiguo 13/02/2010, 13:03
 
Fecha de Ingreso: noviembre-2009
Mensajes: 91
Antigüedad: 14 años, 5 meses
Puntos: 1
Problema con array numerico.

Buenas tardes:

Tengo un problema que no se como resolver, declare el siguiente arreglo:

Código PHP:
$rutas=array(0,0,0,0,0,0,0,0); 
donde voy a almacenar las rutas que salgan de una consulta, pero sin repetirlas,
es decir hago la consulta la ruta es 2 entonces en $rutas[0]=2, si la siguiente ruta es 2, no debe de hacer nada, sino dejarla pasar, y hacer la siguiente consulta y asi.

El problema es que no lo hacia bien, me repetia rutas, me puse a imprimir lo que tenia el arreglo y resulta que tiene esto:

Valor de rutas en 0= 20
Valor de rutas en 1= 21
Valor de rutas en 2= 82
... etc

no se porque tiene un 0,1,2,3,4,5,6,7..... despues del id de la ruta, alguna idea de porque ingresa ese numero consecutivo???

Se los agradeceria muchisimo...

Mil gracias!!
  #2 (permalink)  
Antiguo 13/02/2010, 13:04
Avatar de morior  
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 14 años, 8 meses
Puntos: 12
Respuesta: Problema con array numerico.

Necesitamos ver el bucle donde vas guardando las rutas en tu array y una cosa creo que en php no hace falta que inicialices el array.
__________________
Juego de navegador online
  #3 (permalink)  
Antiguo 13/02/2010, 13:12
(Desactivado)
 
Fecha de Ingreso: febrero-2010
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con array numerico.

esplicate un poco mas no entenbi lo que quieres lograr
un array depende del numero que esta almasenando y se empiesa a contar desde el cero
despues aumentas los numeros y si repites un numero es logico que se repite el valor
Código PHP:
$yo= array(0,1,2,3,4);
echo 
"$yo[0]<br />$yo[1]<br />$yo[2]<br />$yo[3]<br />$yo[4]"
  #4 (permalink)  
Antiguo 13/02/2010, 13:17
 
Fecha de Ingreso: noviembre-2009
Mensajes: 91
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema con array numerico.

Código PHP:
foreach($rutas as $v){
    if(
$rutas[$v]!=$idruta){                    
            
$rutas[$i]=$idruta;
            
$i++;
            echo 
"<tr><td colspan=\"2\"><a href=\"facturasurtir2.php?idRuta=$idruta&id=$idempleado\"><span class=\"textos\">$nombreRuta</span></a></td></tr>
            <tr><td>&nbsp;</td></tr>"
;
    }

Lo estoy cambiando constantemente, para ver si puedo hacer que funcione, no inicialice el arreglo, y ahora no me imprime nada, ni ceros ni nada, esta vacio...
No se que pasa.....

Gracias
  #5 (permalink)  
Antiguo 13/02/2010, 13:20
Avatar de morior  
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 14 años, 8 meses
Puntos: 12
Respuesta: Problema con array numerico.

Mira un ejemplo, esto te devuelve sólo los números pares de un array:


Código PHP:
$array[]=1;
$array[]=2;
$array[]=3;
$array[]=4;
$array[]=5;
$array[]=6;

foreach(
$array as $key){

    if(
$key%== 0)
    echo 
"El valor de este array es: $key <br>";




__________________
Juego de navegador online
  #6 (permalink)  
Antiguo 13/02/2010, 13:23
(Desactivado)
 
Fecha de Ingreso: febrero-2010
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con array numerico.

haquy hay un ejemplo de array pares y no pares si eso es lo que intentas aser

Código PHP:
<?php
$numero 
15;
$pares 0;
$impares 0;
while ( 
$numero 0) {
if ( 
$numero == ) {
echo 
"El $numero es un numero PAR <br> ";
$pares++;
}
else {
echo 
"El $numero es un numero IMPAR <br>";
$impares++;
}
$numero--;
}
echo 
"En total he contado <strong>$pares numeros pares</strong> y <strong>$impares impares</strong>";
?>
  #7 (permalink)  
Antiguo 13/02/2010, 13:25
Avatar de morior  
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 14 años, 8 meses
Puntos: 12
Respuesta: Problema con array numerico.

Me parece que no es eso lo que necesita skateloco, necesita trabajar con matrices y ahí no tienes matriz alguna. Yo creo que lo que necesita es poder seleccionar los identificadores de una base de datos sólo si existen pero adaptando el código que yo le he hecho debería poder conseguirlo.
__________________
Juego de navegador online
  #8 (permalink)  
Antiguo 13/02/2010, 13:26
 
Fecha de Ingreso: noviembre-2009
Mensajes: 91
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema con array numerico.

Entiendo tu ejemplo, pero ya tienes establecidos los valores previamente, pero si tienes ke ir insertandolos conforme te resulte de una consulta??

No se cuantas rutas pueden ser, debe de ser un arreglo dinamico, segun lei con solo poner
Código PHP:
$rutas[]="algo" 
este sabia cual indice seguia...

bueno entonces lo que quiero es lo siguiente,

si el valor de arreglo != valor ruta)
ingresar la ruta en el siguiente espacio disponible
sino
que no haga nada

pero no puedo hacerlo!!!

aahh no se que tengo mal, o que no estoy comprendiendo

gracias
  #9 (permalink)  
Antiguo 13/02/2010, 13:27
(Desactivado)
 
Fecha de Ingreso: febrero-2010
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con array numerico.

Cita:
Iniciado por morior Ver Mensaje
Me parece que no es eso lo que necesita skateloco, necesita trabajar con matrices y ahí no tienes matriz alguna. Yo creo que lo que necesita es poder seleccionar los identificadores de una base de datos sólo si existen pero adaptando el código que yo le he hecho debería poder conseguirlo.
esque no se explica que es loque quiere aser por eso es algo dificil ayudarlo
  #10 (permalink)  
Antiguo 13/02/2010, 13:28
Avatar de morior  
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 14 años, 8 meses
Puntos: 12
Respuesta: Problema con array numerico.

Código PHP:
$r=mysql_query("SELECT identificador
    FROM tutabla
    WHERE tus_condiciones"
)
        or die();
while (
$row=mysql_fetch_array($r)){
    
extract($row);

    
$array[] = $identificador;

    }

foreach(
$array as $key){

    echo 
"El valor de este array es: $key <br>";


__________________
Juego de navegador online
  #11 (permalink)  
Antiguo 13/02/2010, 13:33
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema con array numerico.

Yo tampoco entendí muy bien el problema.

Si se trata de que no se repitan los datos en un array, tienes la función array_unique
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 13/02/2010, 13:34
 
Fecha de Ingreso: noviembre-2009
Mensajes: 91
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema con array numerico.

Estoy pensando, pero vamos soy un poco lenta...

Si pongo esto, cada que se realize la consulta ingresara el valor del id de la ruta en una posicion del arreglo, este o no este repetido, verdad??
  #13 (permalink)  
Antiguo 13/02/2010, 13:37
Avatar de morior  
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 14 años, 8 meses
Puntos: 12
Respuesta: Problema con array numerico.

Cita:
Iniciado por FlaKaMaNa Ver Mensaje
Estoy pensando, pero vamos soy un poco lenta...

Si pongo esto, cada que se realize la consulta ingresara el valor del id de la ruta en una posicion del arreglo, este o no este repetido, verdad??
En teoría si tu campo identificador de la base de datos es la llave primaria (que sería recomendable buscar por ahí) se pueden repetir pero no se repetirán porque es la llave primaria y es única.

Si es para sacar datos de una base de datos eso te sirve.
__________________
Juego de navegador online
  #14 (permalink)  
Antiguo 13/02/2010, 13:37
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Problema con array numerico.

Si han visto su script, ella está tratando de usarlo como si fuera javascript.

Este es el original:

Código PHP:
Ver original
  1. foreach($rutas as $v){
  2.     if($rutas[$v]!=$idruta){                    
  3.             $rutas[$i]=$idruta;
  4.             $i++;
  5.             echo "<tr><td colspan=\"2\"><a href=\"facturasurtir2.php?idRuta=$idruta&id=$idempleado\"><span class=\"textos\">$nombreRuta</span></a></td></tr>
  6.            <tr><td>&nbsp;</td></tr>";
  7.     }
  8. }


Y debería ser:

Código PHP:
Ver original
  1. foreach($rutas as $v){
  2.     if($v!=$idruta){                    
  3.             $rutas[$i]=$idruta;
  4.             $i++;
  5.             echo "<tr><td colspan=\"2\"><a href=\"facturasurtir2.php?idRuta=$idruta&id=$idempleado\"><span class=\"textos\">$nombreRuta</span></a></td></tr>
  6.            <tr><td>&nbsp;</td></tr>";
  7.     }
  8. }

A diferencia de javascript, foreach te devuelve el contenido y no el índice.
  #15 (permalink)  
Antiguo 13/02/2010, 13:54
 
Fecha de Ingreso: noviembre-2009
Mensajes: 91
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema con array numerico.

Cita:
Iniciado por paynalton Ver Mensaje
Si han visto su script, ella está tratando de usarlo como si fuera javascript.

Este es el original:

Código PHP:
Ver original
  1. foreach($rutas as $v){
  2.     if($rutas[$v]!=$idruta){                    
  3.             $rutas[$i]=$idruta;
  4.             $i++;
  5.             echo "<tr><td colspan=\"2\"><a href=\"facturasurtir2.php?idRuta=$idruta&id=$idempleado\"><span class=\"textos\">$nombreRuta</span></a></td></tr>
  6.            <tr><td>&nbsp;</td></tr>";
  7.     }
  8. }


Y debería ser:

Código PHP:
Ver original
  1. foreach($rutas as $v){
  2.     if($v!=$idruta){                    
  3.             $rutas[$i]=$idruta;
  4.             $i++;
  5.             echo "<tr><td colspan=\"2\"><a href=\"facturasurtir2.php?idRuta=$idruta&id=$idempleado\"><span class=\"textos\">$nombreRuta</span></a></td></tr>
  6.            <tr><td>&nbsp;</td></tr>";
  7.     }
  8. }

A diferencia de javascript, foreach te devuelve el contenido y no el índice.
Si note mi error, lo corregi despues de publicado y seguía igual.

Bueno, sobre la llave primaria, de hecho es lo que guardo pero explicare, o eso tratare, mi problema y porque se repetian.

Tengo una consulta que saca el id de las ventas
//Sentencia que saca el id de ventas (que pueden ser n ventas)

Despues realizo una consulta con ese id de venta sobre una tabla que guarda todos los renglones que tiene la venta
//Que al igual que la anterior pueden ser n renglones

Dado un renglon, busco el producto y obtengo el codigo
//Si el codigo tiene ciertas caracteristicas, entonces realizo una consulta para obtener a que ruta pertenece
//Esta la tenia que ingresar al arreglo, siempre que no estuviera ya.

Haciendo esto, regresa por otro renglon realiza lo mismo, cuando termina todos los renglones, entonces, busca otra venta y volvemos a empezar.

Es por eso que se repiten las rutas...

Pero vamos creo que de una manera poco ortodoxa encontre como solucionar el problema, ingreso todo y despues saco solo lo que no se repita

Imprimir las rutas es pecata minuta....

Gracias a todos de verdad!!

Etiquetas: numerico
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 22:02.