Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Llenar un array completo

Estas en el tema de Llenar un array completo en el foro de PHP en Foros del Web. Hola amigos, tengo un arreglo asociativo principal llamado $alumnos con toooodos los datos de cada alumno, es decir: id_alumno, nombre, apellidos, madre, padre, sexo, fecha_nacimiento, ...
  #1 (permalink)  
Antiguo 09/07/2017, 01:06
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 4 meses
Puntos: 11
Sonrisa Llenar un array completo

Hola amigos, tengo un arreglo asociativo principal llamado $alumnos con toooodos los datos de cada alumno, es decir:
id_alumno, nombre, apellidos, madre, padre, sexo, fecha_nacimiento, direccion,..., etc, etc, etc

Ahora estoy creando un nuevo arreglo en donde solo voy a incluir a las niñas a través de

$ninas = array();
if ($alumno[sexo] == 1) {
array_push($ninas, $alumnos['id_alumno']);
}

Si lo hago así, en el nuevo arreglo solo tendré disponible el id_alumno, pero si quisiera incluir cada uno de los campos existentes del array principal en el nuevo array, tendría que indicarlo en el array_push().

Aquí mi pregunta: existe alguna forma en donde pueda incluir toooodos los campos en el nuevo array, sin tener que indicarlo uno a uno?

Última edición por julia2021; 09/07/2017 a las 02:23
  #2 (permalink)  
Antiguo 09/07/2017, 07:11
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Llenar un array completo

la clave del array es automatica o manual es decir:
$array= array([0]=array(datos), [1]=array(datos)...

ó

$array = array([idalumno]=array(datos), [idalumno]=array(datos)... )

en todo caso debes agregar al siguiente array es la clave del alumno en cuestion y este se agregara con toso sus tados, por ejemplo:

Código PHP:
Ver original
  1. //Clave manual
  2. $data=array(
  3.     '123456'=>array('carlos quintero','Lomas de Funval','Valencia','Venezuela'),
  4.     '1234567'=>array('Manuel Martinez','Parque Cristal','Valencia','Venezuela'),
  5.     '12345678'=>array('Carla Gonzalez','Puerta de Este','Maracay','Venezuela'),
  6.     );
  7.  
  8. //Clave automatica (0-1-2...)
  9. $datab=array(
  10.         array('carlos quintero','Lomas de Funval','Valencia','Venezuela'),
  11.         array('Manuel Martinez','Parque Cristal','Valencia','Venezuela'),
  12.         array('Carla Gonzalez','Puerta de Este','Maracay','Venezuela'),
  13.     );
  14.  
  15. $hembras = array();
  16. array_push($hembras, $datab['12345678]);//sea la clave de esta manera
  17. array_push($hembras, $datab[2]);//o de esta el resultado será el mismo
  18. print_r($hembras);

de cualquier manera, va a depender de la estructura de tu array.
__________________
[email protected]
HITCEL

Última edición por xfxstudios; 09/07/2017 a las 07:18
  #3 (permalink)  
Antiguo 09/07/2017, 11:14
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 4 meses
Puntos: 11
Sonrisa Respuesta: Llenar un array completo

Hola, así tambien lo entiendo yo, pero no se porque no me funciona, les cuento lo que tengo:
Cuando tomo el arreglo $todos_los_alumnos y hago print_r($todos_los_alumnos) me aparecen toooooodos los datos, de tooooodos los alumnos. Hasta aquí vamos ok.

Luego ejecuto el siguiente código
Código PHP:
$ninas = array();
foreach (
$todos_los_alumnos as $key => $alumno) {
// Verificamos si es femenino
  
if ($alumno['sexo'] == 1) {
    
array_push($ninas$alumno['id_alumno']);

Supuestamente debería funcionar así, pero al hacer print_r($ninas) solo me aparecen los id_alumnos:
Array ( [0] => 11 [1] => 10 [2] => 6 [3] => 2 )
No sé porque no se almacenan todooos los datos al hacer el array_push($ninas, $alumno['id_alumno'])
  #4 (permalink)  
Antiguo 09/07/2017, 11:58
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Llenar un array completo

Cita:
Aquí mi pregunta: existe alguna forma en donde pueda incluir toooodos los campos en el nuevo array, sin tener que indicarlo uno a uno?
Solo tienes que usar array_filter para obtener a las estudiantes, ejemplo.
Código PHP:
Ver original
  1. $all_students = [
  2.  
  3. ['id' => 1, 'name' => 'Naiara Dominguez Peña', 'sex' => 1],
  4. ['id' => 1, 'name' => 'Jorge Romero Soler', 'sex' => 0],
  5. ['id' => 1, 'name' => 'Miguel Gomez Fuentes', 'sex' => 0],
  6. ['id' => 1, 'name' => 'Noelia Moya Lopez', 'sex' => 1],
  7. ['id' => 1, 'name' => 'Miguel Gil Saez', 'sex' => 0],
  8. ['id' => 1, 'name' => 'Jana Cano Medina', 'sex' => 1],
  9. ['id' => 1, 'name' => 'Marco Gonzalez Duran', 'sex' => 0],
  10. ['id' => 1, 'name' => 'Carlos Puig Hernandez', 'sex' => 0],
  11. ['id' => 1, 'name' => 'Jordi Romero Santana', 'sex' => 0],
  12. ['id' => 1, 'name' => 'Nora Leon Mendez', 'sex' => 1],
  13.  
  14. ];
  15.  
  16. $girl_students = array_filter($all_students, function($student) {
  17.     return $student['sex'] == 1;
  18. });
  19.  
  20. print_r($girl_students);
Esto imprime lo siguiente
Código PHP:
Ver original
  1. (
  2.     [0] => Array
  3.         (
  4.             [id] => 1
  5.             [name] => Naiara Dominguez Peña
  6.             [sex] => 1
  7.         )
  8.  
  9.     [3] => Array
  10.         (
  11.             [id] => 1
  12.             [name] => Noelia Moya Lopez
  13.             [sex] => 1
  14.         )
  15.  
  16.     [5] => Array
  17.         (
  18.             [id] => 1
  19.             [name] => Jana Cano Medina
  20.             [sex] => 1
  21.         )
  22.  
  23.     [9] => Array
  24.         (
  25.             [id] => 1
  26.             [name] => Nora Leon Mendez
  27.             [sex] => 1
  28.         )
  29.  
  30. )
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 09/07/2017, 13:50
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Llenar un array completo

ahora con el array_filter que te exponen más arriba sería mas eficiente la cosa. Saludos
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 09/07/2017, 16:57
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 4 meses
Puntos: 11
Respuesta: Llenar un array completo

Buenisímo con la array_filter me ha funcionado de las mil maravillas. Gracias !!!!
Por otra parte, como soy un poquito terca jaja, encontre el error en el código principal.

En lugar de colocar: array_push($ninas, $alumno['id_alumno']);
Hay que colocar: array_push($ninas, $alumno);

Y con esto el nuevo array toma toooodos los valores del alumno a almacenar

Etiquetas: Ninguno
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 11:40.