Ver Mensaje Individual
  #11 (permalink)  
Antiguo 27/06/2013, 09:25
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Problema con if en arreglo de un solo elemento.

Si es asociativo... seria mejor opcion asi:

Código PHP:
<?php

$arr 
= array ('nombre'=>'juan','apellido'=>'perez');
$it = new arrayIterator($arr);

foreach (
$it as $key=>$val){
   echo 
"$key : $val<br/>";
}
Pero puedes hacerlo perfecamente con FOR

Código PHP:
<?php

$arr 
= array ('nombre'=>'juan','apellido'=>'perez');

$largo_array count($arr);

for(
$i=0;$i<$largo_array;$i++){
   echo 
key($arr).': '.current($arr).'<br/>';
   
next($arr);
}
Logicamente no puedes referencias un elemento con un indice numerico ($i en el ejemplo tuyo) si es asociativo,...ahi la falla Por eso fijate uso current() next() ... key() si quiero el indice

VOLVIENDO a tu CASO PARTICULAR, creo tu tienes un array de arrays y no un array bi-dimensional como dices: $persona[0]['nombre']

En tal caso... el primer "bucle" seria con indice numerico y el interno es asociativo:

Código PHP:
<?php

// Simulamos un mysql_fech_array() en $datos
$datos = array();
$datos[] = array ('id'=>1,'nombre'=>'juan','apellido'=>'perez','telefono'=>'30045634455');
$datos[] = array ('id'=>2,'nombre'=>'pepe','apellido'=>'gonzalez','telefono'=>null);


$cant_catos count($datos);

for(
$row_ix=0;$row_ix<$cant_catos;$row_ix++){
   
$row $datos[$row_ix];
   foreach (
$row as $field=>$val){
       echo 
"$field : $val <br/>";
   }
}
Salida:

Cita:
id : 1
nombre : juan
apellido : perez
telefono : 30045634455
id : 2
nombre : pepe
apellido : gonzalez
telefono :
__________________
Salu2!

Última edición por Italico76; 27/06/2013 a las 10:10