Al trabajar con programación, comprender cómo manejar las estructuras de datos es clave para el desarrollo de proyectos eficientes. Un array complejo en PHP puede ser una herramienta poderosa para lograr esto. En esta clase profundizaremos en su construcción y las ventajas que ofrece, explorando conceptos avanzados como la iteración de elementos y el uso de funciones específicas.
¿Cómo crear un array complejo?
Construir un array complejo implica más precisión que un array simple. Aquí tomamos un array inicial, posiblemente de tecnologías front-end, frameworks y back-ends, y le añadimos contexto adicional. Por ejemplo:
En este ejemplo, cada elemento del array tiene un propósito específico: uno está definido como tecnología de front-end, otro como framework, y el último como lenguaje del back-end. Esta estructura permite un acceso y manipulación más organizada y comprensible de los datos.
¿Cómo iterar y manipular un array complejo?
Para recorrer un array en PHP, una de las opciones es usar el loop foreach, que facilita el acceso tanto a los keys como a los valores del array:
Este ciclo permite imprimir cada clave y su valor asociado, una forma ordenada de ver y trabajar con la estructura del array.
Además, PHP ofrece la función array_walk() para aplicar una función dada a cada elemento del array. Este método es útil para realizar operaciones específicas en cada componente del array:
Estas utilidades amplían la capacidad de manipular arrays, permitiéndote adaptar y optimizar tu código según las necesidades de cada proyecto. Recuerda siempre comentar y documentar tus pruebas prácticas para reforzar tu aprendizaje y compartir tus experiencias en la comunidad. ¡No olvides seguir explorando! La práctica constante es la clave para maestro de PHP y sus frameworks.
Los "arrays complejos" son llamados de igual forma "arrays asociativos", donde prácticamente al valor le poner un nombre, eso es todo, y lo interesante de esto es que actúa de la misma forma que una lista, así como actúa de la misma forma de un objeto JSON, tiene en lista el atributo clave/valor, esta es la forma más cómoda de trabajar con objetos JSON desde PHP, y claro que existen funciones para transformar un array asociativo en objetos JSON y viceversa.
Por último, en la función array_walk fácilmente se pudo haber usado un Closure, lo menciono para que empiecen a darse una idea de cómo todo se conecta :D
Muy buena explicación
Interesante, muy buenos tus apuntes. 💪
En la parte que haces el echo, estas usando la propiedad 'nombre', pero debería de ser 'name'.
Por lo demás buen ejemplo.
Mis apuntes
<?php
echo "<h1>Array Complejo</h1>";echo "---------------";echo "<br>";#Array//Es aquel elemento que no identificamos de manera directa.$courses =['frontend'=>'javascript','framework'=>'laravel','backend'=>'php'];echo '<pre>';var_dump($courses);echo "<br>";foreach($courses as$key=> $value){ echo "$key: $value <br>";}echo "<br>";$contador =1;foreach($courses as $course){ echo "$contador.- $course <br>"; $contador++;}echo "<br>";functionupper($course){ echo strtoupper("$course <br>");}array_walk($courses,'upper');echo "<br>";functionupper1($course, $key){ echo strtoupper($course).": $key <br>";}array_walk($courses,'upper1');/*
//Existe un Key
array_key_exists('frontend', $courses);
//Existe un valor
in_array('javascript', $courses);
//Muestra todos los Key
array_keys($courses);
//Muestra todos los valores
array_values($courses);
*/
Array complejo
Los datos de los Arrays son datos complejos por que nos permiten guardar varios datos dentro de una sola variable. Declaramos un array de la siguiente forma:
array_walk('key', $array); → Nos ayuda a aplicar una función que le pasemos a cada miembro del array, es muy parecido a .maps() o .each() en JS o Ruby.
array_key_exists('key', $array); → Para saber si un key existe.
in_array('valor', $array); → Nos ayuda a buscar si existe un valor en el Array.
array_keys($array); → Nos imprime todos los keys en pantalla.
array_values($array); → Nos imprime todos los valores en pantalla.
muy buen uso de la función array_walk, no lo sabía.
Gracias por el aprte, realmente he transcrito todos tus aportes, me parecen excelentes, Gracias
Hola Christian, de nada bro, estamos para ayudarnos.
Había tomado cursos de PHP pero nunca los entendía, me frustraba y le agarraba miedo al lenguaje pero este profeso lo explica todo muy muy sencillo y explicito !!! gracias Patzi mas profesores como este
🐱💻 Utilizando un array complejo para la siguiente implementación:
aporte: los corchetes funciona a partir de PHP 5.4 en versiones inferiores se debe usar array();
Mis apuntes y resultados con funciones con arrays:
<?php
// Array simple: solo valores y keys predeterminados$courses =['JS','Laravel','PHP','Vuejs'];echo "<pre>";var_dump($courses);// Array complejo$coursesKey =['frontend'=>'JS','framework'=>'Laravel','backend'=>'PHP','framework2'=>'Vuejs'];foreach($coursesKey as$key=> $value){ echo "$key: $value <br>";}//funciones de php para arraysfunctionupperStringCourse($course){ echo strtoupper($course)."<br>";}//Recorre toda la colección y llama a la función con cada elementoarray_walk($coursesKey,'upperStringCourse');echo "array_key_exists <br>";$existCourse =array_key_exists('framework', $coursesKey);var_dump($existCourse);echo "<br>";echo "in_array <br>";$inArrayCourse =in_array('JS', $coursesKey);var_dump($inArrayCourse);echo "<br>";echo "array_values <br>";$arrayValues =array_values($coursesKey);var_dump($arrayValues);echo "<br>";echo "array_keys <br>";$arrayKeys =array_keys($coursesKey);var_dump($arrayKeys);
array_walk me voló la cabeza
Excelente aporte
A mi tambien!
<code>$courses =['frontend'=>'java','framework'=>'laravel','backend'=>'php'];//devuelven 1 ó 0echo array_key_exists('frontend', $courses);echo '<br>';echo in_array('java', $courses);echo '<br>';//imprime llaves y valoresprint_r(array_keys($courses));echo '<br>';print_r(array_values($courses));
De acuerdo a la documentación los arrays pueden ser declarados también con "array()". ¿Existe alguna diferencia que afecte el rendimiento del sistema que estamos construyendo al usar una de las dos formas ( [ ] vs array() ) ?
Nop, son lo mismo :D
Para insertar valores a un array complejo/asociativo he utilizado el siguiente código:
<?php
$courses =['back-lang'=>'PHP','front-language'=>'JavaScript','services-lang'=>'Java','cloud-lang'=>'GO','new-lang'=>'Rust'];print("##### With foreach loop #####\n");foreach($courses as$key=> $value){print("$key: $value\n");}print("\n\n##### With array_walk function #####\n");array_walk($courses,function($value, $key){print("$key: $value\n");});print("\n\n##### With print_r function #####\n");print_r($courses);print("\n\n##### Check if the key exists #####\n");print("Key".(array_key_exists('back-lang', $courses)?" ":" does't ")."exists");print("\n\n##### Check if the value ecists #####\n");print("Value".(in_array('PHP', $courses)?" ":" doesn't ")."exists");print("\n\n##### List the keys #####\n");print_r(array_keys($courses));print("\n\n##### List the values #####\n");print_r(array_values($courses));