Arreglos asociativos

3/25
Recursos

Aportes 29

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

¿Arreglos complejos? 🤔

.
Vamo a calmarno. Que no te asuste el nombre, simplemente se llaman así porque su estructura es más “compleja”, pero la verdad es que para nosotros es más fácil de manejar 😅.
.
Es el equivalente a los objetos JSON de JavaScript, sobre todo porque podemos verlos como una lista, y los subíndices, en lugar de ser números, son palabras más fáciles de recordar.
.
Este tipo de arreglo son muy útiles (y de hecho los vas a usar mucho), ya que son tan fáciles de manejar y de entender. De hecho, son llamados asociativos porque asocian una clave con un valor 😄.
.
¿Qué otro ejemplo de arreglos asociativos se te ocurren? 👀

Like para que el buen @RetaxMster haga un curso de peticiones a API con php ❤️

Yo quiero aprender a usar php con javascript.

excelente clase me gusta mucho como el profe explica, es muy claro. A mí me gustaría un curso donde se aplique estos temas pero consumiendo directamente de una base de datos, sería chevere realizar una aplicación

Espero no haberme pasado con el codigo tan extenso, me gustaria saber si hay una forma de no repetir tanto codigo ya que lo unico que varia es el usuario, sobre todo en la parte donde estan los echos para imprimir la informacion

$personas = array(
    "Usuario 1" => array(
        "nombre" => "Carlos",
        "edad" => 20,
        "apellido" => "Santana",
        "hobbies" => array(
            "Hobbie 1" => "Guitarra",
            "Hobbie 2" => "Afro",
            "Hobbie 3" => "Ver Drake & Josh",
        ),
    ),
    "Usuario 2" => array(
        "nombre" => "Eduardo",
        "edad" => 22,
        "apellido" => "Peraza",
        "hobbies" => array(
            "Hobbie 1" => "Videojuegos",
            "Hobbie 2" => "Deporte",
            "Hobbie 3" => "Coleccionar",
        ),
    ),
    "Usuario 3" => array(
        "nombre" => "Martha",
        "edad" => 54,
        "apellido" => "Vindas",
        "hobbies" => array(
            "Hobbie 1" => "Pintura country",
            "Hobbie 2" => "Art Diamong",
            "Hobbie 3" => "Bordado Punto en cruz",
        ),
    ),
    "Usuario 4" => array(
        "nombre" => "Ciara",
        "edad" => 4,
        "hobbies" => array(
            "Hobbie 1" => "Cazar y correr",
            "Hobbie 2" => "Revolcarse en la alfombra",
            "Hobbie 3" => "Rasguñar el sillon",
        ),
    ),
);

$salto = "------------------------------------------------------- \n";

echo $salto;
echo "La edad de " . $personas["Usuario 1"]["nombre"] . " es: " . $personas["Usuario 1"]["edad"] . " años. \n" .
 " Sus hobbies son: \n" . 
 "- Hobbie 1: " . $personas["Usuario 1"]["hobbies"]["Hobbie 1"] . "\n" . 
 "- Hobbie 2: " . $personas["Usuario 1"]["hobbies"]["Hobbie 2"] . "\n" . 
 "- Hobbie 3: " . $personas["Usuario 1"]["hobbies"]["Hobbie 3"] . "\n" ;
echo $salto;

echo "La edad de " . $personas["Usuario 2"]["nombre"] . " es: " . $personas["Usuario 2"]["edad"] . " años. \n" . 
" Sus hobbies son: \n" . 
"- Hobbie 1: " . $personas["Usuario 2"]["hobbies"]["Hobbie 1"] . "\n" .  
"- Hobbie 2: " . $personas["Usuario 2"]["hobbies"]["Hobbie 2"] . "\n" . 
"- Hobbie 3: " . $personas["Usuario 2"]["hobbies"]["Hobbie 3"] . "\n" ;
echo $salto;

echo "La edad de " . $personas["Usuario 3"]["nombre"] . " es: " . $personas["Usuario 3"]["edad"] . " años. \n" . 
" Sus hobbies son: \n" . 
"- Hobbie 1: " . $personas["Usuario 3"]["hobbies"]["Hobbie 1"] . "\n" .  
"- Hobbie 2: " . $personas["Usuario 3"]["hobbies"]["Hobbie 2"] . "\n" . 
"- Hobbie 3: " . $personas["Usuario 3"]["hobbies"]["Hobbie 3"] . "\n" ;
echo $salto;

echo "La edad de " . $personas["Usuario 4"]["nombre"] . " es: " . $personas["Usuario 4"]["edad"] . " años. \n" . 
" Sus hobbies son: \n" . 
"- Hobbie 1: " . $personas["Usuario 4"]["hobbies"]["Hobbie 1"] . "\n" . 
"- Hobbie 2: " . $personas["Usuario 4"]["hobbies"]["Hobbie 2"] . "\n" . 
"- Hobbie 3: " . $personas["Usuario 4"]["hobbies"]["Hobbie 3"] . "\n" ;
echo $salto;

?>

Necesito otro gato para ponerle Mr. Michi

Yo quiero ver ejemplo en Javascript con términos “michis” 😃

Otra analogía, podría ser:

Tienes dos cajitas como las de la clase anterior y ahora las has metido en una caja más grande.

Quizás sirva esta analogía.

Reto cumplido, de forma simple pero muy contento porque he logrado entender muy bien lo que explicas, Te felicito por la manera en que nos enseñas a todos , espero ver mas cursos contigo.

<?php

$comida = array(

    "hamburguesa" => 35,
    "hotDog"      => 10,
    "pasta"      => 45,
    "cocacola"    => 3,
    "postre"      => 5

);



$personas = array(

    "jose" => array(
        "apellido" => "Perez",
        "edad"     => 33,
        "comidaFavorita" => array(
            "comida1" => "Hot Dog",
            "comida2" => "Hamburguesas",
            "comida3" => "Pasta"
        ),

    ),

    "luis" => array(
        "apellido" => "Rodriguez",
        "edad"     => 25,
        "comidaFavorita" => array(
            "comida1" => "Hamburguesas",
            "comida2" => "Pasta",
            "comida3" => "Hot Dog"
        ),

    ),

);

echo "Jose " .$personas["jose"]["apellido"] . " compro una Hamburguesa que costo " . $comida["hamburguesa"] ." $ ". " No le importo el costo porque las ". $personas["jose"]["comidaFavorita"]["comida2"]. " son su comida favorita";
echo "\n";

echo "Luis " .$personas["luis"]["apellido"] . " compro un plato de pasta 4 quesos que costo " . $comida["pasta"] ." $ ". " No le importo el costo porque la ". $personas["luis"]["comidaFavorita"]["comida2"]. " es su comida favorita";
echo "\n";

Hola. Les comparto este repositorio que sirve de guía para el examen final, pues contiene las preguntas que se encuentran en el examen, la justificación y el video del curso donde se habla sobre eso. Espero y les sea de utilidad 😄.
Platzi-Test

No pense que esto fuera posible,guardar un arreglo dentro de un arreglo…genial

Trailing comma is good practice https://blog.logrocket.com/best-practices-using-trailing-commas-javascript/

Agregué campos de dirección.

$usuarios = [
    "Carlos" => [
        "edad" => 20,
        "apellido" => "Santana",
        "direccion" => [
            "calle"       => "Av. Lázaro Cardenas",
            "no_interior" => "3",
            "no_exterior" => "3334",
            "colonia"     => "Díaz",
        ],
    ],
    "Roberto" => [
        "edad" => 30,
        "apellido" => "Díaz",
        "direccion" => [
            "calle"       => "Av. Principal",
            "no_interior" => "34",
            "no_exterior" => "3244",
            "colonia"     => "Centro",
        ],
    ],
    "Diego" => [
        "edad" => 50,
        "apellido" => "López",
        "direccion" => [
            "calle"       => "Av. 16 de septiembre",
            "no_interior" => "34",
            "no_exterior" => "3453",
            "colonia"     => "Polanco",
        ],
    ],
];

echo "La información de Diego es: \n
    Edad: {$usuarios['Diego']['edad']} \n 
    Apellido: {$usuarios['Diego']['apellido']} \n
    Colonia: {$usuarios['Diego']['direccion']['colonia']}";

echo "\n";

Conclusión: se puede agregar un array dentro de un array, que a su vez este dentro de un array y así de manera indefinida, esto se llama Array Multidimensional(pero tiene un limite humano en donde nos perdemos)
Aportes

  • los elementos son key sensitive, así que hay que tener cuidado si escribimos una palabra con una mayúscula y luego en minúscula

  • Tratar de ser lo más ordenado posible

  • Poner un limite a cuantas dimensiones va a tener un array

Mi codigo es:

<?php 
$personas = array(
    "Miguel" => array(
          "edad" => 19,
        "apellidos" => array(
        "Materno"=>"Moreno",
        "paterno"=>"tipo null lastimosamente"),
        "Estudios"=>array(
            "universidad"=>"ingenieria en ciberseguridad",
            "Escuela"=> "bachiller en ciencias, letras y enfasis en gestion empresarial"
        )
    )
);

echo "La información de Miguel es la siguiente: ". "edad: " . $personas["Miguel"]["edad"] . ", apellido materno: " . $personas["Miguel"]["apellidos"]["Materno"] . " , apellido paterno:  " . $personas["Miguel"]["apellidos"]["paterno"] . " y esta cursando actualmente " . $personas["Miguel"]["Estudios"]["universidad"] . " en la universidad" ;
?>
$personas = array(
    "Guada" => array(
        "apellido" => "Monge",
        "edad" => 36,
        "idioma" => "Español",
    ),
    "Carlos" => array(
        "apellido" => "Santana",
        "edad" => 40,
        "idioma" => ["Ingles", "Español"],
    ),
);

echo "Info de Carlos \n";
echo "Edad: " . $personas["Carlos"]["edad"] . " años \n";
echo "Apellido: " . $personas["Carlos"]["apellido"] . "\n";
echo "Idioma: {$personas["Carlos"]["idioma"][0]} y {$personas["Carlos"]["idioma"][1]} \n";

$personas = array(
    "Carlos" => array(
        "edad"=>20,
        "apellido"=>"Santana",
        "comidas-favoritas" => array(
            "1" => "patatas",
            "2" => "pollo asado",
            "3" => "comida china"
        )
    ),
    "Mr.Michi" => array(
        "edad"=>18,
        "apellido"=>"Michisancio",
        "comidas-favoritas" => array(
            "1" => "sushi",
            "2" => "pescado",
            "3" => "premios"
        )
    )
);

echo "\n La información de Mr. Michi es:
    Edad: {$personas['Mr.Michi']['edad']}
    Apellido: {$personas['Mr.Michi']['apellido']} 
    Comidas favoritas: 
        1: {$personas['Mr.Michi']['comidas-favoritas']['1']} 
        2: {$personas['Mr.Michi']['comidas-favoritas']['2']} 
        3: {$personas['Mr.Michi']['comidas-favoritas']['3']} 

    \n La información de Carlos es:
    Edad: {$personas['Carlos']['edad']}
    Apellido: {$personas['Carlos']['apellido']} 
    Comidas favoritas: 
        1: {$personas['Carlos']['comidas-favoritas']['1']} 
        2: {$personas['Carlos']['comidas-favoritas']['2']} 
        3: {$personas['Carlos']['comidas-favoritas']['3']} 
    ";


-------------------------------------------------------------------------------
Resultado:
 La información de Mr. Michi es:
    Edad: 18
    Apellido: Michisancio       
    Comidas favoritas:
        1: sushi
        2: pescado
        3: premios


 La información de Carlos es:   
    Edad: 20
    Apellido: Santana
    Comidas favoritas:
        1: patatas
        2: pollo asado
        3: comida china

Uso de { } en Arrays Complejos

…
Se considera arreglo complejo a aquel que tiene mas de un nivel dentro de su estructura ejemplo $frutas= [primavera[piña]];
…
Para poder acceder a elementos que estan dentro de un array que por ejemplo estan en su segundo nivel es indispensable el uso de {} para evitar algun error de sintaxis

Purba sin {} y os vereis el error de sintaxis

#Array complejo asociativo
$course = [
    'backend'=>['PHP', 'Laravel']
];

echo "Para ser backend 
      debes aprende {$course['backend'][0]}";

Intentandolo

$personas = array (
“Carlos” => array (
“apellido” => “Santana”,
“edad” => 20,
),

"Pedro" => array (
        "apellido" => "Infante",
        "edad" => 45,
),

);

echo "La edad de Pedro " . $personas[“Pedro”][“apellido”] . " es: " . $personas[“Pedro”][“edad”];

echo “\n”;

echo "La edad de Pedro " . $personas[“Carlos”][“apellido”] . " es: " . $personas[“Carlos”][“edad”];

echo “\n”;

echo "La suma de las dos edades es: " . $personas[“Carlos”][“edad”] + $personas[“Pedro”][“edad”];

echo “\n”;

En mi caso se me ocurrió combinar arreglos simples y asociativos:

<?php
$br     = "\n";
$hr     = "-------------------------------------------------------------------------------------\n";

$alumnos = [
    'RetaxMaster' => [
        'nombre'      => 'Carlos',
        'apellido'    => 'Gómez',
        'edad'        => 25,
        'tecnologias' => [
            'PHP',
            'JavaScript',
            'React',
            'Node.JS',
        ],
    ],
    'Irfaxad'     => [
        'nombre'      => 'Joan',
        'apellido'    => 'Olvera',
        'edad'        => 37,
        'tecnologias' => [
            'HTML',
            'CSS',
            'JavaScript',
        ],
    ],
];

$tipoAlumno = 'RetaxMaster';

echo "La información de $tipoAlumno es: su nombre es {$alumnos[$tipoAlumno]['nombre']} {$alumnos[$tipoAlumno]['apellido']}, tiene {$alumnos[$tipoAlumno]['edad']} años y conoce ".count($alumnos[$tipoAlumno]['tecnologias']).' tecnologías.';
echo $br.$hr;

Hice un array que tiene dentro arrays de arrays. Es muy interesante y complicado cuando se tiene demasiados arrays dentro de estos mismos.

<?php
    $personas = [
        "Carlos" => [
            "edad" => 20,
            "apellido" => "Santana",
            "gustos" => [
                "libros"=>[
                    "Miguel de Cervantes" => "Don Quijote",
                    "Gabriel Garcia Marques" => "100 anios de Soledad",
                ],
                "musica"=>[
                    "Regueton" => "Bad Bunny",
                    "Bachata" =>["Romeo Santos","Prince Royce"],
                ],
            ],
        ],
    ];

    echo "A Carla le gusta mucho leer el libro ".$personas["Carlos"]["gustos"]["libros"]["Miguel de Cervantes"];
?>

Comparto este enlace con buen contenido del tema https://aprende-web.net/php/php6_2.php

El remate final aclaro todas mis sospechas acerca de los objetos!

Cuando es muy largo el arreglo me gusta más utilizar la sintaxis de corchetes. ¡Cuestión de gustos - simplemente!

$personas = [
  "p1" => [
      "nombre" => 'Adrian',
      "edad" => 32,
      "Hobbies" => ['Jugar Futbol', 'Tomar con amigos']
  ],
  "p2" => [
    "nombre" => 'Fabian',
    "edad" => 35,
    "Hobbies" => ['Leer', 'Estudiar lenguajes de programación', 'Hacer ejercicio']
  ]
];

Un array asociativo básicamente es un array multidimensional, al cual nosotros podemos asignar un nombre al subíndice, de esta forma nosotros podemos acceder a sus valores utilizando el subíndice que hemos creado.

Mi aporte

$personas = array(
    "Carlos" => array(
        "edad" => 20,
        "apellido" => "Santana",
        "Cursos" => array(
            "PHP",
            "JavaScript",
            "HTML",
            "CSS"
        )
    ),

    "Mr.Michi" => array(
        "edad" => 18,
        "apellido" => "Michisancio",
        "Cursos" => array(
            "Java",
            "Python",
            "C#",
            "Ruby"
        )
    ),
);

echo "La informacion de Mr.Michi es: Edad: {$personas["Carlos"]["edad"]} Apellido: {$personas['Carlos']['apellido']} Primer curso: {$personas['Carlos']['Cursos'][0]} \n";

echo "La informacion de Mr.Michi es: Edad: {$personas["Mr.Michi"]["edad"]} Apellido: {$personas['Mr.Michi']['apellido']} Primer curso: {$personas['Mr.Michi']['Cursos'][0]}";

echo "\n";

aqui les dejo mi humilde código.

<?php
$apodos = array (
    "Armandito" => array(
        "nombre" => "Julio",
        "apellido" => "Alvarez",
        "nacimiento" => array(
            "dia" => 6,
            "mes" => "noviembre",
            "año" => 1992 
        )
    ),
);
echo "la info de Armandito es: 
Nombre: {$apodos["Armandito"]["nombre"]} 
Apellido: {$apodos["Armandito"]["apellido"]}
Dia de nacimiento: {$apodos["Armandito"]["nacimiento"]["dia"]}
Mes de nacimiento: {$apodos["Armandito"]["nacimiento"]["mes"]}
Año de nacimiento: {$apodos["Armandito"]["nacimiento"]["año"]}
";
?>

Excelente curso tenia muchas dudas pero ahora son mas claras, que bueno encontrar este nuevo curso

Ejercicio jeje…

<?php 
  $personas = array(
      "Carlos" => array(
          "Edad" => 29,
          "Apellido" => "Parra",
          "Musica" => array (
              "Rock" => "The killers",
              "Dance" => "Daft Punk",
              "indie rock" => "The Kooks",
          ),
      ),

      "Adriana" => array(
        "Edad" => 29.15,
        "Apellido" => "Rebollar",
        "Musica" => array(
            "Ska" => "Maskatesta",
            "Soul" => "Amy Winehouse",
            "Rock" => "Muse",
        )

    )
     

  );