No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Array complejo

12/16
Recursos

Aportes 56

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Los 鈥渁rrays complejos鈥 son llamados de igual forma 鈥渁rrays 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 馃槃

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>";
function upper($course){
	echo strtoupper("$course <br>");
}

array_walk($courses, 'upper');

echo "<br>";

function upper1($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:

<?php

$courses = [
    'frontend' => 'JS', 
    'framework' => 'laravel',
    'backend' => 'php'
];

foreach ($courses as $key => $var) {
    echo "<h4> $key: $var <br><h4>";
}

function upper($course, $key)
{
    echo ucfirst($course) . "=> $key <br>";
}

array_walk($courses, 'upper');
  • array_walk(鈥榢ey鈥, $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(鈥榢ey鈥, $array); 鈫 Para saber si un key existe.
  • in_array(鈥榲alor鈥, $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.

馃惐鈥嶐煉 Utilizando un array complejo para la siguiente implementaci贸n:

 <?php
$greets = [ 
   'normal' => 'Hello', 
   'contraction' => 'Hi'
];

foreach($greets as $greet){
    echo "$greet\n";
}

$result = array_key_exists('normal', $greets);

if($result == 1)
{
  echo 'Si';
}else
{
  echo 'No';
}

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

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 arrays
function upperStringCourse($course)
{
    echo strtoupper($course). "<br>";
}

//Recorre toda la colecci贸n y llama a la funci贸n con cada elemento
array_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

<code>
$courses = [
    'frontend' => 'java', 
    'framework' => 'laravel', 
    'backend' => 'php' 
];

//devuelven 10
echo array_key_exists('frontend', $courses);    
echo '<br>';
echo in_array('java', $courses);            

echo '<br>';

//imprime llaves y valores
print_r(array_keys($courses));
echo '<br>';
print_r(array_values($courses));

m谩s elementos que me permiten manipular el tema de los arrays:

  • array_key_exists(); Podemos ver si un key existe.
  • in_array(); Podemos buscar a nivel de valores,
  • array_keys(); para imprimir todos los keys en pantalla.
  • array_values(); Mostrar los valores de este array.
  • Los array complejos son llamados de igual manera array asociativos, donde pr谩cticamente al valor le poner un nombre; eso es todo. Lo m谩s interesante de esto es que act煤a de la misma forma que una lista.

Ejercicio 4 array complejo

Resumen de la clase

<?php
$courses =[
    'PHP'=>'PHP',
    'JavaScript'=>'JavaScript',
    'Python'=>'Python',
    'C#'=>'C#',
    'C++'=>'C++'];


foreach($courses as $course){
    echo "$course <br>";
}
echo '<br>';

function upper($course,$key){
    echo strtoupper($course) .": $key <br>";
}

array_walk($courses,'upper');


echo '<pre>';
var_dump($courses);
echo '</pre>';
echo '<br>';

echo (bool) array_key_exists('PHP',$courses);
echo in_array('PHP',$courses);
array_keys($courses);
array_values($courses);

Buenas! Comparto algunas anotaciones y ejemplos de los m茅todos del final de la clase, saludos.


<?php 

$courses = [
    'frontend' => 'javascript',
    'framework' => 'laravel',
    'backend' => 'php',
    'frontend' => 'CSS'
]; 

//Podemos ver si existe un key
var_dump(array_key_exists('frontend', $courses));
echo "<br>";

//Si existe un elemento en el array
var_dump (in_array('laravel', $courses));
echo "<br>";

//Nos devuelve un array con las keys con su correspondiente 铆ndice 
var_dump(array_keys($courses));
echo "<br>";


//Nos devuelve un array con los elementos de un array 
var_dump(array_values($courses));

Resultado

Me empieza a gustar php por la simple razon de que todo te lo coloca de una forma mas facil hay cientos de metodos para arrays, string y hasta funciones. En otros lenguajes tendrias tu mismo que implementar esa funcion por tu cuenta aca en php lo mas probable es que ya exista

Listos para ser probados

var_dump((bool) array_key_exists('objetos', $tecs)); //Verificar si la Key existe en el Array
echo '<br>';
var_dump((bool) in_array('objetos', $tecs)); //Verificar si existe el Valor en el Array
echo '<br>';
echo '<pre>';
var_dump(array_keys($tecs)); //Imprimir todos los keys en pantalla
echo '</pre>';
echo '<br>';
echo '<pre>';
var_dump(array_values($tecs)); //Imprimir todos los Valores en pantalla
echo '</pre>';
/*
* array_key_exists('Frontend', $courses); // Comprueba que exista el key en el array
* in_array('Javascript', $courses); // Comprueba si un valor existe en el array
* array_keys($courses); // Devuelve los keys del array
* array_values($courses); // Devuelve los values del array
* array_search('Laravel'); // Busca un valor en el array y devuelve su key
*/

No conoc铆a la funci贸n array_walk.
Pero pinta muy interesante!

12. Array Complejo

Comparto el c贸digo de la clase:

<?php

/**
 * Si usamos foreach ($courses as $key => $value),
 * recorremos todas los valores en base a sus keys
 * siendo $key una palabra reservada que se refiere a la "key"
 * de cada elemento en el array
 */

$courses = [
    'frontend' => 'javascript',
    'framework' => 'laravel',
    'backend' => 'php'
];

// foreach ($courses as $key => $value)
// foreach ($courses as $course)
// {
//     echo "$key: $value <br>";
//     echo "$course <br>";
// }

/**
 * array_walk, recorre todos los elementos, ejecutando la
 * funci贸n que est谩 como segundo par谩metro, y que necesariamente
 * debe estar su nombre entre comillas simples
 */
function upper($course, $key)
{
    echo strtoupper($course) . ": $key <br>";
}
array_walk($courses, 'upper');

/**
 * Esto busca si existe una key en un array:
 * array_key_exists('frontend', $courses);
 * Esto busca si existe un elemento dentro de un array
 * in_array('javascript', $courses);
 * Esto imprime todos los keys en pantalla:
 * array_keys($courses);
 * Esto imprime solo los valores de un array:
 * array_values($courses);
 */
<?php

    // Create an associative array
    echo "<h3>Create an associative array</h3>";

    $person = [
        'name' => 'Brad',
        'surname' => 'Traversy',
        'age' => 30,
        'hobbies' => ['Tennis', 'Video Games'],
    ];



    // Get element by key
    echo $person['name'] . '<br>';
    var_dump($person);

    $person['channel'] = 'TraversyMedia';

    echo "<pre>";
    var_dump($person);
    echo "</pre>";



    //Null coalescing assignment operator. Since PHP 7.4
    if (!isset($person['address'])) {
        $person['address'] = 'Unknown';
    }
    $person['address'] ??= 'Unknown';

    echo "<pre>";
    var_dump($person);
    echo "</pre>";

    echo "<li>" . $person['address'] . '</li><br>';



    // Check if array has specific key
    echo '<pre>';
    var_dump(isset($person['age']));  // Change age into "location"
    echo '</pre>';



    // Print the keys of the array
    echo '<pre>';
    var_dump(array_keys($person));      # array_keys 鈥 Devuelve todas las claves de un array o un subconjunto de claves de un array
    echo '</pre>';

    /** otras funciones similares a array_keys:
     * 
     * array_values() - Devuelve todos los valores de un array
     * array_combine() - Crea un nuevo array, usando una matriz para las claves y otra para sus valores
     * array_key_exists() - Verifica si el 铆ndice o clave dada existe en el array
     * array_search() - Busca un valor determinado en un array y devuelve la primera clave correspondiente en caso de 茅xito
     */

    // Print the values of the array
    echo '<pre>';
    var_dump(array_values($person));    # array_values() - Devuelve todos los valores de un array
    echo '</pre>';



    // Sorting associative arrays by values, by keys
    ksort($person); // ksort, krsort, asort, arsort

    /** funciones de ordenamiento de arrays:
     * ksort 鈥 Ordena un array por clave
     * krsort 鈥 Ordena un array por clave en orden inverso
     * asort() - Ordena un array y mantiene la asociaci贸n de 铆ndices
     * arsort() - Ordena un array en orden inverso y mantiene la asociaci贸n de 铆ndices
     */

    echo '<pre>';
    var_dump($person);
    echo '</pre>';



    // Two dimensional arrays:
    echo "<h3>Two dimensional arrays</h3>";

    $todos = [
        ['title' => 'Todo title 1', 'completed' => true],
        ['title' => 'Todo title 2', 'completed' => false],
    ];

    echo '<pre>';
    var_dump($todos);
    echo '</pre>';

Mi practica de algunas funciones de arrays en PHP,
impresionante lo array_wal( )

$users = [
    'name' => 'Christian',
    'lastName' => 'Vargas',
    'email' => '[email protected]',
    'age' => 27
];

function lower($user, $value)
{
    $valueNew = strtoupper($value);
    echo "$valueNew: $user  <br/>";

}

echo '<pre>';
array_walk($users, 'lower');
echo '<hr/>';

var_dump(array_key_exists('lastName', $users));
echo '<hr/>';

var_dump(in_array('30', $users));
var_dump(in_array('Christian', $users));
echo '<hr/>';

var_dump(array_keys($users));
echo '<hr/>';

var_dump(array_values($users));


Mi ejemplo uwu

<code> 
/*--------------------------ARRAYS---------------------------- */

$cursitos=[
    'Iwa'=> 'PHP',
    'Kim'=> 'Dise帽o',
];

foreach($cursitos as $key=>$value){
    echo "\n$key: $value";
}

foreach($cursitos as $cursos){
    echo "\n$cursos";
}


$alumnos=[
    'Iwa'=>'Wordpress',
    'Kim'=> 'Patrones de dise帽o',

];

foreach($alumnos as $alumno => $materias){
    echo "\nEl alumno $alumno se encuentra estudiando:$materias";
}
 

function materiaUpper($alumno){
    echo "\n".mb_strtoupper($alumno)."\n";
}

array_walk($alumnos, 'materiaUpper');

var_dump (array_key_exists('Iwa',$alumnos));
var_dump (in_array('Patrones de dise帽o',$alumnos));
var_dump (array_keys($alumnos)); 
var_dump (array_values($alumnos));

OUTPUT
Iwa: PHP
Kim: Dise帽o

PHP
Dise帽o

El alumno Iwa se encuentra estudiando:Wordpress
El alumno Kim se encuentra estudiando:Patrones de dise帽o

WORDPRESS

PATRONES DE DISE脩O

bool(true)
bool(true)

array(2) {
[0]=>
string(3) 鈥淚wa鈥
[1]=>
string(3) 鈥淜im鈥
}

array(2) {
[0]=>
string(9) 鈥淲ordpress鈥
[1]=>
string(19) 鈥淧atrones de dise帽o鈥
}

Les comparto lo aprendido

<?php

$courses = [
    'frontend'  => 'javascript',
    'backend'   => 'PHP',
    'para_android'   => 'Java',
    'multiproposito'    => 'Python'
];

Despu茅s de esto me di a la tarea de buscar en la documentaci贸n oficial de php que hac铆a cada funci贸n.

//verifica si existe un key dentro de un array
echo array_key_exists('para_android', $courses);

echo '<br>';

//verifica si existe un valor "x" dentro de un array
echo in_array('PHP', $courses, true);

echo '<br>';

//devuelve todas las keys del array
print_r(array_keys($courses));

echo '<br>';

//devuelve todos los valores del array
print_r(array_values($courses));

Apuntes de esta clase, estan geniales las ultimas funciones

/**
 * Arrays complejos
 * 
 */

$cursosC = [
    'frontend'=> 'javascript',
    'framework'=> 'Laravel',
    'backend'=> 'php'
];


/**
 * Array walk, es una funcion predeterminada de php que nos ayuda a recorrer un array
 * y ademas de eso podemos asignarle  una funcion, para que en cada recorrido, cumpla algo
 * 
 */

foreach ($cursosC as $key => $value) {
    echo "$key: $value <br>";
}


function upper($curso)
{
    echo strtoupper($curso) . "<br>";
}
array_walk($cursosC, 'upper');

# Funciones interesantes con arrays

# array_key_exists(str key, var array) = esta funcion busca en nuestro array una llave y nos dice si existe

var_dump(array_key_exists('frontend', $cursosC));

# in_array(srt valor, var array) = esta funcion busca en nuestro array un valor y nos dice si existe

var_dump(in_array('javascript', $cursosC));

# array_keys(var array) = esta funcion muestra todas las llaves de un array

var_dump(array_keys($cursosC));

# array_values(var array) = esta funcion muestra todos los valores de un array

var_dump(array_values($cursosC));```
array_diff(): datos del primer array que no tenga el segundo array

Mis pr谩cticas:

<?php 
$arreglo = [
    'primero' => 'alfa',
    'segundo' => 'beta',
    6 => 16,
];

//array_key_exists: devuelve true si el indice buscado existe
if (array_key_exists('primero',$arreglo)) {
    echo "<pre>el indice 'primero' existe <br />";
} else {
    echo "<pre>el indice 'primero' NO existe <br />";
}

//in_array: devuekve true si se encontr贸 la aguja en el pajar
if(in_array('alfa',$arreglo)) {
    echo "<pre>existe el elemento 'alfa' <br />";
} else {
    echo "<pre>NO existe el elemento 'alfa' <br />";
}

if (in_array('16',$arreglo, true)) {
    echo "<pre>existe el elemento 16";
} else {
    echo "<pre>NO existe el elemento 16 <br />";
}

//array_keys: devuelve un array con los indices
echo "<pre>";
print_r(array_keys($arreglo));

//array_values: devuelve todos los valores del array
echo "<pre>";
print_r(array_values($arreglo));
?>

Resultado:

se puede ser explicito al momento de declarar un array con el constructor (aunque no es necesario)

$courses = array(
	'frontend' => 'js'
);

Arreglo Complejo o Asociativo es aquel al que se le declara de manera explicita la dupla clave=>valor

Usando las ultimas funciones que dejo el profesor:

$courses = [
    'frontend' => 'JavaScript',
    'framework' => 'Laravel',
    'backend' => 'php'
];

array_walk($courses, 'upper');
if (array_key_exists('frontend', $courses)) {
    echo ' Si existe frontend en el arreglo';
}

if (in_array('JavaScript', $courses)) {
    echo 'Si existe JavaScript en el arreglo';
}

var_dump(array_keys($courses));
var_dump(array_values($courses));```

poco a poco me empieza a gustar mas PHP.

Excelente

La verdad que se ve muy bien la funci贸n array_walk, pero鈥s m谩s optima que un foreach con una llamada interna a esa funci贸n??

<?php
echo 鈥<!DOCTYPE html>
<html lang=鈥渆s鈥>
<head>
<meta charset=鈥渦tf-8鈥 />
<title>Funciones de Array</title>
</head>
<body>
鈥;
$listado=[
1=>鈥楬ewler Packard鈥,
2=>鈥楢cer鈥,
3=>鈥楲enovo鈥,
4=>鈥楢lienwere鈥,
5=>鈥楽amgsung鈥
];

/foreach($listado as $key=>$valor){
echo 鈥$key:$valor鈥."</br>";
}
/

/*
function iniciales($lis,$k){
echo substr($lis,0,3).鈥 : '.substr($k,0,1)."</br>";
}
//me recibe un Array y una funci贸n y da pasos sobre el array
array_walk($listado,鈥榠niciales鈥);
*/

// Buscando la clave array_key_exist
/* $x=5;
if(array_key_exists($x,$listado)==鈥欌){
echo 鈥淣o esta en la Lista鈥;
}elseif(array_key_exists($x,$listado)==1){
echo 鈥淓xiste鈥;
}
*/
//Existe un valor en el Array in_array, es un buscador, reporta 1 si lo encuentra

//echo in_array(鈥楽amgsung鈥,$listado);

//Guarda en un array todos los Keyses de un Array Complejo o asociativo

/$y=array_keys($listado);
var_dump($y);
/

//Guarda en un array todos los values de un array complejo
/*
$n=array_values($listado);
var_dump($n);
*/

Apuntes y ejercicio de la clase 馃挌

Esta pagina me fue 煤til para complementar la clase 馃槃
https://diego.com.es/arrays-asociativos-en-php

$course = [
    'FrontEnd'=>'JavaScript',
    'Framewrok'=>'Laravel',
    'BackEnd'=>'PHP'
];

echo '<pre>';
var_dump($course);
echo'<br>';

foreach($course as $key => $value){
    echo "$key: $value <br>";
}
echo '<br>';

function upper($course, $key)
{
    echo strtoupper($course). ": $key <br>";
}

array_walk($course, 'upper');

echo '<br>';

print_r (array_values($course));

echo '<br>';

print_r(array_keys($course));

Se puede hacer un proyecto web grade solo con PHP? O es mejor usar algun framework?

Para los que como a mi, le quedaron dudas sobre el funcionamiento de array_walk

<?php

$empleados = ['operario'=>'kevin',
			  'team leader'=>'karla',
			  'supervisor'=>'Juan',
			  'gerente'=>'veronica'];


function mostrar($empleados){

	echo ucfirst($empleados)."<br>";
}

array_walk($empleados, "mostrar"); //recorre el array_walk


//evalua si existe un key dentro del array

if(array_key_exists('gerente', $empleados)){
	echo "El key ". strtoupper('gerente')."si existe";
}

//evalua si existe un value dentro del array

if(in_array('Juan',$empleados)){	
	echo "El empleado Juan si existe";
}

//imprime todos los keys
print_r(array_keys($empleados));

//imprime todos los values del in_array

print_r(array_values($empleados));```

Veo los arrays complejos como un hash o diccionario que hay en otros lenguajes de programaci贸n, 驴mi conclusi贸n es correcta? Corr铆janme si estoy mal por favor.

array_walk 鈥 Aplicar una funci贸n proporcionada por el usuario a cada miembro de un array

Hice un ejercicio extra de array walk basado en el de un compa帽ero que lo hizo con shows de television

 $alumnos=[
     [
         'pronombre-s'=>'El',
         'nombre'=>'Francisco Valle',
         'nota'=>9
     ],
     [
         'pronombre-s'=>'La',
         'nombre'=>'Karla Ramos',
         'nota'=>7
     ],
     [
         'pronombre-s'=>'El',
         'nombre'=>'Linus Torvald',
         'nota'=>4
     ]
 ];

 function Aprobacion($alumnos){
     //Se usan corchetes por tener una capa de complejidad mayor
     if ($alumnos['nota']>=6) {
         echo "<p>{$alumnos['pronombre-s']} [email protected] {$alumnos['nombre']} ha aprobado</p>";
     } else {
        echo "<p>{$alumnos['pronombre-s']} [email protected] {$alumnos['nombre']} ha reprobado</p>";
     }
 }

 array_walk($alumnos,'Aprobacion');

 /**
  * OUTPUT:
  * El [email protected] Francisco Valle ha aprobado
  * La [email protected] Karla Ramos ha aprobado
  * El [email protected] Linus Torvald ha reprobado
  */```

Para las funciones de array complejos hice lo siguiente

//Existe cierta llave?
 if (array_key_exists('frontend', $courses)) {
     echo '<p>La llave existe</p>';
 } else {
    echo '<p>La llave no existe</p>';
 }
 //Existe cierto valor?
 if (in_array('javascript', $courses)) {
    echo '<p>El valor existe</p>';
} else {
   echo '<p>El valor no existe</p>';
}

//Que llaves hay?
echo '<ul>';
foreach (array_keys($courses) as $key => $curso) {
    echo "<li>$curso</li>";
}
echo '</ul>';
//Que valores hay?
echo '<ul>';
foreach (array_values($courses) as $key => $curso) {
    echo "<li>$curso</li>";
}
echo '</ul>';
<?php 
    $courses =[
        'fronted'=> 'javascript',
        'framework' =>  'laravel',
        'backend '=> 'php',
        ];


function upper($course, $key){
    echo strtoupper($course). ": $key<br>";
}

array_walk($courses, 'upper');

$a= array_key_exists('fronted', $courses);
echo $a. "Si existe fronted";

$b=in_array('javascript', $courses);
echo "<pre> $b";
$c= array_keys($courses);
echo "<pre>";
var_dump($c);

$d=array_values($courses);
var_dump($d);```
Se supone que las funciones deben regresar algo y no utilizar echo en ellas 馃 Ya me confund铆.

Creo que es importante conocer que existe una funci贸n reservada de PHP la cual nos permite construir un array asociativo a trav茅s de un objeto, esa es stdClass. PAra usar esta clase podemos instaciarla como si fuera un objecto y posterior a ello llamar ese objeto y luego asignarle la llave que queremos y despu茅s el valor.

Ejemplo

// Instaciamos la clas stdClass()
<?php
$asignaturas = new stdClass();

// Creamos las llaves para el objeto, sabiendo o teniendo en cuenta que lo estamos visualizando como un array.
$asignaturas->matematicas = 鈥淎鈥;
$asignaturas->historia = 鈥淔鈥;`

var_dump($asignaturas);
?>

Como ven, llamamos la variable $asignaturas y 鈥渓lamamos鈥 a matematicas e historia c贸mo si fueran parte de asignaturas, pero en realidad no lo son, lo que estamos haciendo es creando las llaves de un objeto que posteriormente veremos como un array, array asociativo o JSON con otras funciones de conversi贸n. Al nombrar estas llaves, podemos pasarle un valor que este caso son las notas.

Tambi茅n conocidos como array asociativo

Un apunte que enlaza con las funciones an贸nimas es que en este caso de array_walk podr铆amos hacer lo siguiente:

$cursos = [
    'frontend' => 'javascript',
    'backend' => 'php',
    'framework' => 'laravel'
];

array_walk($cursos, function($curso){
    echo strtoupper($curso) . "<br>";
});

Esto funcionaria igual pero haciendo uso de una funci贸n an贸nima como par谩metro, se suele usar cuando la funci贸n solo se va a usar en estas iteraciones.

ma帽ana mismo refactorizar茅 codigo con array_walk() no conocia la funcion... que pr谩ctica...
<?php
$frutas = array("d" => "lim贸n", "a" => "naranja", "b" => "banana", "c" => "manzana");

function test_alter(&$elemento1, $clave, $prefijo)
{
    $elemento1 = "$prefijo: $elemento1";
}

function test_print($elemento2, $clave)
{
    echo "$clave. $elemento2<br />\n";
}

echo "Antes ...:\n";
array_walk($frutas, 'test_print');

array_walk($frutas, 'test_alter', 'fruta');
echo "... y despu茅s:\n";

array_walk($frutas, 'test_print');
?>

Imprime:
Antes 鈥:
d. lim贸n
a. naranja
b. banana
c. manzana
鈥 y despu茅s:
d. fruta: lim贸n
a. fruta: naranja
b. fruta: banana
c. fruta: manzana

en un tiempo he usado las otras pero para mi es nuevo esta funci贸n: array_walk y es bastante 煤til para reducir c贸digo