Arreglos asociativos
Clase 3 de 25 • Curso de PHP: Arreglos, Funciones y Estructuras de Control
Contenido del curso
Clase 3 de 25 • Curso de PHP: Arreglos, Funciones y Estructuras de Control
Contenido del curso
José Alberto Ramírez Quiroz
Luis Humberto Osorio Quiceno
Carlos Eduardo Gomez García
Cristobal Nyram
Elena Fischietto
Pablo Joaquín Cruz
Hector Taboada
kleber Aguilar
Andrés Felipe Lopez gomez
Diego Vergara
Rafael Andrés Araujo Ordoño
Emma Yendis
Tania Moreira Loor
Miguel Moreno
Eduardo Peraza Vindas
Jimmy Buriticá Londoño
Joaquin Sales Vives
Moisés Cedeño
David Leonardo Baron Avilan
Alejandro Patiño
Martha Liliana Dominguez Gonzalez
Emiliano Perez
Julio Cardenas
Julian Aranguren
Axel Yaguana
Agustín García Castellano
Alejandro Patiño
César Cubarrubia
Juan David Díaz Bustos
Jesus Cuadro
Juan Omar Palma álvarez
Oscar Román
Like para que el buen @RetaxMster haga un curso de peticiones a API con php <3
Saludo.
Si, Si, Si... pero con seguridad.. agregarle funciones de seguridad. Gracias.
¿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? 👀
echo "Hola,Mamá aprendí a 'encerrar' un arreglo {$arreglo['subIndiceRamdom']} :,) "; echo "\n";
¿Un ejemplo podrían ser las colecciones set de Java?
¿Por qué dejar una coma , al final?
Además de la razón que dio el profe, es importante dejar la trailing comma cuando trabajamos con sistemas de versionado como git. Supongamos que tengamos este array:
$persona = array( "nombre" => "Joaquín", "edad" => 21, );
Si quisiera luego agregar un dato más, como un email, quedaría así:
$persona = array( "nombre" => "Joaquín", "edad" => 21, "email" => "joaquin@joacru", );
Entonces el sistema de versionado solo debería registrar una línea, que es la del nuevo campo. Si no hubiese tuviese la trailing comma en la línea "edad" => 21 el sistema de versionado tendría que haber registrado el cambio de esa línea (la coma agregada).
Con la trailing comma podemos agregar datos creando líneas nuevas sin tener que modificar otras.
Que excelente dato tiraste man... muchisimas gracias!
Gracias por el dato .💚
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
Yo quiero aprender a usar php con javascript.
a mi también me gustaría aprender a usar php con javascript, html y css, si alguien sabe por donde continuar, algun curso o una guía, agradecería bastante la información.
Necesito otro gato para ponerle Mr. Michi
Hola a todos, ahora con la versión de php8.+, se puede pintar los array sin usar llaves.
$ages = [ 'Carlos' => 23, 'Mr.popo' => 43, 'Jesus' => 40, ]; echo $ages['Jesus']; echo "La edad de Carlos es de $ages[Carlos]";
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" ; ?>
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; ?>
Nunca había visto un índice en PHP con un espacio "hobbie 1", pensé que no funcionaria, probe tu código y si funciona. A pesar de que funciona considero que es una mala practica y se debe de evitar. Puedes usar "hobbie1" sin espacio.
Usando funciones evitas usar tanto código
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.
Mi duda es:
¿Puedo hacer arreglos de dos, tres o n dimensiones en PHP ?
Porque por lo que vi en los ejemplos Retax usa arreglos unidimensionales, si es incorrecto me encantaría que me corrigieran, Gracias!!
Hola David, en la clase el arreglo de personas es multidimensional. En la primera dimensión tienes los nombres y en la segunda la edad y el apellido de cada nombre. En php puedes tener cuantas dimensiones quieras, simplemente debes poner una estructura de arreglo en el interior de otra, así:
<?php // Con notación de corchetes. $arreglo = [ [...], [...], [...], ] // Con notación de constructor. $arreglo = array( array(...), array(...), array(...), )
Tenemos entonces 3 tipos de arrays:
$lomitos = array("firulais", "canela", "luna");
$edad = array("Pedro"=>"35", "Benito"=>"37", "Ana"=>"43");
$carros = array ( array("Volvo",22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",17,15) );
Se me ocurrió hacer un Array de Ropa con más Arrays
$ropa = array( "Buzos" => array("Talles" => ["M", "L", "XL"], "Colores" => ["Rojo", "Azul"], "Precio" => 200), "Camisas" => array("Talles" => ["L", "XL"], "Color" => "Azul", "Precio" => 150), ); echo $ropa["Buzos"]["Talles"][0] . "\n";
Mi resumen en codigo:
Salida:
como puedo poner comillas simples en mi computadora portatil
Hola. Depende del teclado que tengas. Pero en general, será la tecla que se muestra en la imagen de abajo.
que significa => en este caso?
El operador => indica la relación asociativa entre una clave y un valor. La clave nos permite acceder a los valores almacenados en el arreglo.
<?php $arreglo = ['clave' => 'valor'] echo $arraglo['calve']
Solamente como un pequeño recordatorio y evitar colocar esa gran cantidad de corchetes. Podrían asignar cada persona a una variable. Esto no siempre va a ser viable, ya que depende de la cantidad de elementos. De todos modos, se los comento para que sea mucho más legible el código.
Espero les sirva :) <3
$personas = array( "Carlos" => array( "edad" => 20, "apellidos" => array( "paterno" => "Santana", "materno" => "Morales", ) ), ); $carlos = $personas["Carlos"]; echo "La información de Carlos es: \n-Edad: $carlos[edad]". "\n-Apellido Paterno: $carlos[apellido][paterno]" . "\n-Apellito Materno: $carlos[apellido][materno]";
Es mucho más legible
Aqui un poco de lo que hice con los array asociativos
$personas = [ "Jesus" => array( "edad" => 20, "apellidos" => array( 1 => "Jimenez", 2 => "Lopez", ), ), "Jose" => array( "edad" => 34, "apellido" => "Gaitan" ), ]; echo "La informacion de Jesus es: Edad: " . $personas["Jesus"]["edad"] . " Apellidos: " . $personas["Jesus"]["apellidos"][1] . " " . $personas["Jesus"]["apellidos"][2];
Hola, soy Juan y tengo 46 jajaja
jajaj... Los 40 son los nuevos 20¿s Profe!