Foros del Web » Programando para Internet » PHP »

Problema con array asociativo

Estas en el tema de Problema con array asociativo en el foro de PHP en Foros del Web. Muy buenas. Hace muy poco tiempo que empecé a programar con PHP y aún controlo muy poco. Me llevo peleando 2 días con un array ...
  #1 (permalink)  
Antiguo 08/02/2012, 04:38
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Problema con array asociativo

Muy buenas. Hace muy poco tiempo que empecé a programar con PHP y aún controlo muy poco. Me llevo peleando 2 días con un array y no consigo lo que quiero. Necesito para ejercicio de abajo, lo siguiente:

Recorrer el array $personas con los 5 campos iniciales más los 2 añadidos posteriormente, y una vez recorridos comprobar el campo "sexo". Si el campo sexo es hombre, a la hora de mostrar en pantalla con echo, me ponga 'DON' delante del nombre, y si es el cmapo sexo es mujer me ponga 'DOÑA' delante del nombre.
Necesito hacerlo con un bucle, imagino que con un For y luego usar un If/else, pero no tengo ni idea de como componer el bucle :S Este es el código que tengo.

<?php
// Declaro un array asociativo llamado $PERSONAS y le introduzco 5 arrays para 5 personas.
$personas = array (
array ('nombre' => 'Juan', 'apellidos' => 'apellidos Juan', 'sexo' => 'hombre'),
array ('nombre' => 'Ana', 'apellidos' => 'apellidos Ana', 'sexo' => 'mujer' ),
array ('nombre' => 'Maria', 'apellidos' => 'apellidos Maria', 'sexo' => 'mujer' ),
array ('nombre' => 'Miguel', 'apellidos' => 'apellidos Miguel', 'sexo' => 'hombre'),
array ('nombre' => 'Jose', 'apellidos' => 'apellidos Jose', 'sexo' => 'hombre'),
);

// añado dos personas nueva al array.
$personas[] = array ("nombre" => "Sonia", "apellidos"=> "apellidos Sonia", "sexo"=> "mujer");
$personas[] = array ("nombre" => "Daniel", "apellidos"=> "apellidos Daniel", "sexo"=> "hombre");

//Recorro el array completo.
foreach($personas as $persona)
{
echo $persona['nombre'].' '.$persona['apellidos']. ' -- ' .$persona['sexo'].'<br />';
}
?>

Agradecería cualquier ayuda, guia o algo para conseguir mostrar el DON y DOÑA en función del sexo.
Intento que quede así:

Don Juan apellidos Juan -- hombre
Doña Ana apellidos Ana -- mujer
Doña Maria apellidos Maria -- mujer
Don Miguel apellidos Miguel -- hombre
....
....
  #2 (permalink)  
Antiguo 08/02/2012, 05:35
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Problema con array asociativo

Hola, primero trata de usar los Highlight,

donde tienes:

Código PHP:
Ver original
  1. //Recorro el array completo.
  2. foreach($personas as $persona)
  3. {
  4. echo $persona['nombre'].' '.$persona['apellidos']. ' -- ' .$persona['sexo'].'<br />';
  5. }
  6. ?>


deberia ser asi:

Código PHP:
Ver original
  1. //Recorro el array completo.
  2. foreach($personas as $persona)
  3. {
  4.     $prefijo = "DON";
  5.     if ( $persona['sexo'] == "mujer" ) $prefijo = "DOÑA";
  6.     echo "<strong>$prefijo</strong> ".$persona['nombre'].' '.$persona['apellidos']. ' -- ' .$persona['sexo'].'<br />';
  7. }
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 08/02/2012, 06:05
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Problema con array asociativo

Muchas gracias Perr0. Era exactamente lo que quería, pero pensé que sería más complicado.
Perfect ^^
  #4 (permalink)  
Antiguo 08/02/2012, 06:40
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Problema con array asociativo

Creo que hablé demasiado pronto :P El resultado és el mismo pero necesito hacerlo de forma que recorra el array y lo 'modifique' en función del sexo, no hacerlo con un simple echo que ponga el atributo Don/Doña. Y una vez modificado el array, que lo saque por pantalla.
  #5 (permalink)  
Antiguo 08/02/2012, 07:31
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Problema con array asociativo

no se si es esto:

Código PHP:
Ver original
  1. //Recorro el array completo.
  2. foreach($personas as $persona)
  3. {
  4.     if ( $persona['sexo'] == "mujer" )
  5.     $persona['nombre'] = "DOÑA ".$persona['nombre'];
  6.     else
  7.     $persona['nombre'] = "DON ".$persona['nombre'];
  8.        
  9.     echo $persona['nombre'].' '.$persona['apellidos']. ' -- ' .$persona['sexo'].'<br />';
  10. }

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #6 (permalink)  
Antiguo 08/02/2012, 09:50
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Problema con array asociativo

Perfecto Perr0, ahora sí.
Más o menos tenía ya un bucle If/Else creado pero no me mostraba bien el resultado porque no le tenía bien puestos los índices.

Gracias por la ayuda, me seguiré peleando y aprendiendo

Etiquetas: asociativo
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 20:18.