Foros del Web » Programando para Internet » PHP »

No se imprimen los datos de un array

Estas en el tema de No se imprimen los datos de un array en el foro de PHP en Foros del Web. Hola señores Estoy comenzando con PHP y para adaptarme probe aplicando la misma metodologia que uso en JS y AS2 por lo parecidos que son. ...
  #1 (permalink)  
Antiguo 17/08/2009, 14:51
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
No se imprimen los datos de un array

Hola señores

Estoy comenzando con PHP y para adaptarme probe aplicando la misma metodologia que uso en JS y AS2 por lo parecidos que son.

Trate de hacer que PHP me imprima los datos de un array mediante un "for", pero no me devuelve nada. Esto fue lo que hice:

Código PHP:
<?php
    
    $nom 
'Ovejas';
    
$arr = array('Caballos''Vacas''Ovejas''Bueyes');
    
    
$can count($arr);
    for (
$i 0$i <= $can$i++)
    {
        if (
$arr[i] == $nom)
        {
            echo 
$arr[i];
            break;
        }
    }
    
?>
Que puede estar mal ??, cuando imprimo echo $arr[2]; me devuelve "Ovejas" sin problemas.
__________________
JuniHH
- Mi blog
- Mi portafolio

Última edición por junihh; 17/08/2009 a las 14:58
  #2 (permalink)  
Antiguo 17/08/2009, 14:55
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: No se imprimen los datos de un array

Código PHP:
Ver original
  1. $nom = 'Ovejas';
  2.     $arr = array('Caballos', 'Vacas', 'Ovejas', 'Bueyes');
  3.    
  4.     $can = count($arr);
  5.     for ($i = 0; $i <= $can; $i++)
  6.     {
  7.         if ($arr[$i] == $nom)
  8.         {
  9.             echo $arr[$i];
  10.             break;
  11.         }
  12.     }
  #3 (permalink)  
Antiguo 17/08/2009, 14:57
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: No se imprimen los datos de un array

Sería if $arr[$i]. Aunque te recomiendo usar un ciclo foreach().

Saludos.
  #4 (permalink)  
Antiguo 17/08/2009, 14:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: No se imprimen los datos de un array

Primero el count no empieza desde 0 sino desde 1. Esto quiere decir que cuando hagas la condicion
Código php:
Ver original
  1. $i <= $can

te va a añadir el # 4 y esto ocasionara un valor nulo. Por lo tanto cuando uses count llamalo de esta forma
Código php:
Ver original
  1. $i < $can

Segundo cuando llames las variables acuerdate que PHP es siempre con el simbolo de $. Te falto el simbolo de dolar en varios $arr[i].

Tercero no es requisito solo un consejo. Si no vas a usar la variable $can en otro lado, mejor usa el valor directamente en el for.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 17/08/2009, 19:43
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Respuesta: No se imprimen los datos de un array

@gjx2 / @GatorV: Gracias por la salvedad, acostumbrado a Flash y JS habia olvide el $. Un olvido bobo sin dudas.

@GatorV: Busque info sobre foreach() pero parece que no supe aplicarlo para este caso, apenas logre imprimir cada dato de los indices. Ya vere como lo aplico mas adelante, por el momento FOR me resuelve lo que ando buscando.

@abimaelrc: Gracias por la salvedad, tienes razon, es que probando varias cosas que lei antes de publicar este post olvide quitar el =. Tambien tienes razon en lo de $can, lo quitare.
__________________
JuniHH
- Mi blog
- Mi portafolio
  #6 (permalink)  
Antiguo 17/08/2009, 20:17
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: No se imprimen los datos de un array

Adaptado a lo que quieres hacer:
Código PHP:
Ver original
  1. <?php
  2.     $nom = 'Ovejas';
  3.     $arr = array('Caballos', 'Vacas', 'Ovejas', 'Bueyes');
  4.     foreach ($arr as $animal) {
  5.           if ($animal == $nom) {
  6.                 echo $animal;
  7.                 break;
  8.           }
  9.     }    
  10. ?>

Saludos.
  #7 (permalink)  
Antiguo 17/08/2009, 20:35
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Respuesta: No se imprimen los datos de un array

@GatorV: Hey, que bueno esta eso y parece requerir menos recursos que FOR. Aplicare foreach().
__________________
JuniHH
- Mi blog
- Mi portafolio
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:46.