El manejo de arrays en PHP es un aspecto fundamental que todo programador necesita dominar para trabajar eficientemente con estructuras de datos más complejas, como bases de datos. Imagina que puedes transformar y ordenar tus datos usando funciones predefinidas del lenguaje, facilitando tareas cotidianas como clasificar, dividir, y modificar elementos. A continuación, exploraremos varias funciones de PHP que te permitirán manipular arrays de manera óptima.
¿Cómo ordenar arrays en PHP?
Ordenar arrays es una necesidad recurrente en programación, ya sea para presentarlos al usuario o para otras operaciones lógicas. PHP ofrece funciones sencillas que puedes utilizar:
sort(): Ordena los elementos de un array en orden ascendente. Esta función altera el array original.
Las aplicaciones prácticas de dividir arrays pueden ser enormes, especialmente al trabajar con grandes conjuntos de datos. Aquí algunas funciones que te serán útiles:
array_slice(): Extrae una parte de un array. Retorna un nuevo array con los elementos seleccionados sin modificar el original.
Consejos prácticos para trabajar con arrays en PHP
Practica constantemente: La mejor manera de aprender es ensayar estas funciones con diferentes tipos de arrays y datos.
Consulta la documentación oficial de PHP. Es rica en ejemplos y casos de uso que pueden inspirarte a encontrar soluciones para tus propios proyectos.
Explora estas funciones y observa cómo tu habilidad para manipular datos en PHP se expande rápidamente. La destreza en el manejo de arrays te abrirá muchas puertas en el desarrollo de aplicaciones eficientes y responsivas. ¡Adelante, practica y comenta tus resultados!
Estas son algunas de las funciones de PHP utilizadas para los arrays:
sort: Ordena un array.
rsort: Ordena un array en orden inverso.
ksort: Ordena un array por clave.
krsort: Ordena un array por clave en orden inverso.
array_slice: Extrae una parte de un array.
array_chunk: Divide un array en fragmentos.
array_shift: Quita un elemento del principio del array.
array_pop: Extrae el último elemento del final del array.
array_unshift: Añadir al inicio de un array uno a más elementos.
array_push: Inserta uno o más elementos al final de un array.
array_flip: Intercambia todas las claves de un array con sus valores asociados.
Gracias.
Excelente resumen
Interesante, esto es lo que amo de PHP, posee un arsenal de funciones muy útiles, al igual que en la clase de strings, les dejo ña página con más funciones útiles para php en este enlace
Recuerda que esta página en la biblia del programador de PHP, ahí está toda su documentación :D
Buen aporte el que nos compartes de tus notas.
Reto cumplido, así quedaron los métodos. Todos funcionando.
<?php
echo "<h1>Funciones PHP para arrays</h1>";echo "---------------";$courses =['php','javascript','laravel'];$course =[10=>'php',100=>'javascript',1000=>'laravel'];//ordenar sort($courses);#Ordenar de forma Recursiva//rsort($courses);#Ordenar por Keyksort($course);//krsort($course); //Ordenar de forma Recursivaecho("<pre>");var_dump($courses);echo "<br>";var_dump($course);echo "<br>";#array_slide array rebanada
//en este caso eliminamos el Key 1array_slice($courses,1);var_dump(array_slice($course,1));//Resultado/*
array(2) {
[0]=>
string(10) "javascript"
[1]=>
string(7) "laravel"
}
*/echo "<br>";#array_chunk array pedazo
$courses_chunk =['php','javascript','laravel'];//en este caso crea un 2 arrays y uno de ellos contiene dos elementos de los 3 que cotiene el array principalarray_chunk($courses_chunk,2);var_dump(array_chunk($courses_chunk,2));echo "<br>";#array_shift()$courses_shift =['php','javascript','laravel'];//Quita un elemento del principio del arrayarray_shift($courses_shift);var_dump(array_shift($courses_shift));echo "<br>";#array_pop()$courses_pop =['php','javascript','laravel'];//Extrae el último elemento del final del arrayarray_pop($courses_pop);var_dump($courses_pop);echo "<br>";#array_unshift()$courses_unshift =['php','javascript','laravel'];//Añadir al inicio de un array uno a más elementosarray_unshift($courses_unshift,'laravel2','javascript2');var_dump($courses_unshift);echo "<br>";#array_push()$courses_push =['php','javascript','laravel'];//Inserta uno o más elementos al final de un arrayarray_push($courses_push,'laravel1','javascript1');var_dump($courses_push);echo "<br>";#array_flip()$courses_flip =['backend'=>'php','forntend'=>'javascript'];//Intercambia todas las claves de un array con sus valores asociados$intercambio =array_flip($courses_flip);var_dump($intercambio);
la r de rsort es de reverse, no recursivo.
O inverso, también es válido.
Funciones PHP para arrays
Vamos ver funciones propias de PHP que nos servirán para manipular correctamente un Array, estas funciones nos permitirán manejar de mejor manera los Arrays, pero también los conceptos nos ayudarán cuando estemos trabajando con database.
rsort($courses) → Ordena de forma alfabética pero en descendente.
ksort($courses) → Ordena por la key.
krsort($courses) → Ordena por la key pero en descendente.
array_slice() → Nos deja quitar elementos del array.
array_chunk() → Nos deja tomar diferentes pedazos de datos y los convierte en Arrays individuales.
array_shift() → Nos retorna el primer valor y lo elimina del array.
array_pop() → Nos retorna el último valor y lo elimina del array.
array_unshift() → Agrega nuevos valores al array.
array_push() → Inserta uno o más valores al final de un array.
array_flip() → Nos deja intercambiar los keys por los valores y viceversa.
var_dump(array_unshift($courses,'Ruby'));
✨ PHP tiene un stock completo de funciones para trabajar con arrays. Esto facilita en gran medida el desarrollo de nuestras aplicaciones.
La r de rsort ¿No hace referencia a reverse?
Recursivo es un concepto bastante distinto y no tiene mucho que ver con el orden...
Si correcto, pensé lo mismo
Un pequeño error, la r es de reverse, no de recursivo.
Es correcto!
Hola.
Al rededor del minuto 4:10 el elemento que se quita del array no es php sino laravel, esto es debido a que el array $courses está ordenado por sus claves de forma descendente, por lo tanto el primer elemento sería 1000 => 'laravel', es cual es el que se retira.
Exacto
🎯 TIP: Para imprimir una array completo podemos usar la función print_r ($array)
La función sort() ordena de 2 dos manera:
Alfabéticamente (a-z):
fruits[0]= apple
fruits[1]= banana
fruits[2]= lemon
fruits[3]= orange
Numéricamente, (si tiene los mismos caracteres y se distinguen por algún numero):
Si tiene muchos caracteres distintos, puede devolver errores
Para ordenar arrays complejos o asociativos, existen estas dos funciones:
asort()
arsort()
De esta forma se conserva la clave =>valor, pero se ordena por valor.
⚠️ Tener en cuenta la "mutabilidad" con las funciones
Algunas funciones modifican el array original y otras generan un array nuevo. Es como en JavaScript, pero no es exactamente igual en PHP.
<?php
$courses =['php','js','laravel'];// Ordenar arraysort($courses);echo "<pre>";print_r($courses);echo "</pre>";// Ordenar array de manera descendentersort($courses);echo "<pre>";print_r($courses);echo "</pre>";// ordenar por la key de manera ascendenteksort($courses);echo "<pre>";print_r($courses);echo "</pre>";// Ordena por la key de manera descendentekrsort($courses);echo "<pre>";print_r($courses);echo "</pre>";// Quitar un elemento de un arrayecho "<pre>";print_r(array_slice($courses,1));echo "</pre>";// Separar un arrayecho "<pre>";print_r(array_chunk($courses,2));echo "</pre>";// Eliminar primer key del array:array_shift($courses);echo "<pre>";print_r($courses);echo "</pre>";// Eliminar el ultimo elemento del arrayarray_pop($courses);echo "<pre>";print_r($courses);echo "</pre>";// Agrega un dato al inicio del arrayarray_unshift($courses,'PHP');echo "<pre>";print_r($courses);echo "</pre>";// Agregar un dato al final del arrayarray_push($courses,'Flutter');echo "<pre>";print_r($courses);echo "</pre>";$courses_tech =['Back-End'=>'php','Front-End'=>'js','Framework'=>'laravel',];// Intercambiar keys y valoresecho "<pre>";print_r(array_flip($courses_tech));echo "</pre>";```\<?php
$courses = \['php','js','laravel'];*// Ordenar array*sort($courses);echo "\<pre>";print\_r($courses);echo "\</pre>";*// Ordenar array de manera descendente*rsort($courses);echo "\<pre>";print\_r($courses);echo "\</pre>";*// ordenar por la key de manera ascendente*ksort($courses);echo "\<pre>";print\_r($courses);echo "\</pre>";*// Ordena por la key de manera descendente*krsort($courses);echo "\<pre>";print\_r($courses);echo "\</pre>";*// Quitar un elemento de un array*echo "\<pre>";print\_r(array\_slice($courses, 1));echo "\</pre>";*// Separar un array*echo "\<pre>";print\_r(array\_chunk($courses, 2));echo "\</pre>";*// Eliminar primer key del array:*array\_shift($courses);echo "\<pre>";print\_r($courses);echo "\</pre>";*// Eliminar el ultimo elemento del array*array\_pop($courses);echo "\<pre>";print\_r($courses);echo "\</pre>";*// Agrega un dato al inicio del array*array\_unshift($courses, 'PHP');echo "\<pre>";print\_r($courses);echo "\</pre>";*// Agregar un dato al final del array*array\_push($courses, 'Flutter');echo "\<pre>";print\_r($courses);echo "\</pre>";$courses\_tech = \['Back-End'=>'php','Front-End'=>'js','Framework'=>'laravel',];*// Intercambiar keys y valores*echo "\<pre>";print\_r(array\_flip($courses\_tech));echo "\</pre>";
<?php
$courses =[4=>'PHP',22=>'JavaScript',5=>'Java',123=>'GO',0=>'Rust'];ksort($courses);print("\n\n##### Sorted array by key #####\n");print_r($courses);print("\n\n##### Chunk array #####\n");print_r(array_chunk($courses,2));print("\n\n##### Delete an item from an array #####\n");print_r(array_slice($courses,1,preserve_keys:true));print("\n\n##### Delete the first item from an array and return it #####\n");print_r("Deleted item: ".array_shift($courses));print("\n\n##### Add an item to the beginning of an array #####\n");print_r("Lenght of array: ".array_unshift($courses,'Rust'));print("\n\n##### Delete the last item from an array and return it #####\n");print("Deleted item: ".array_pop($courses));print("\n\n##### Add an item to the end of an array #####\n");print("Lenght of array: ".array_push($courses,'GO'));$courses2 =['back-lang'=>'PHP','front-language'=>'JavaScript','services-lang'=>'Java','cloud-lang'=>'GO','new-lang'=>'Rust'];print("\n\n##### Flip keys and values #####\n");print_r(array_flip($courses2));
Confunde un poco usar el array_slice despues del krsort y luego marcar con comentarios que el que debía salir era el que tiene de valor "php"
les dejo mis apuntes por si los quieren guardar en un archivo php :)
<?php
$courses =['PHP','JavaScript','Laravel'];$cursos =[10=>'PHP',100=>'JavaScript',1000=>'Laravel'];sort($courses);echo "sort: Ordena el array <br>";echo "<pre>";var_dump($courses);echo "<br>";rsort($courses);echo "rsort: Ordena el arrayen orden inverso <br>";var_dump($courses);echo "<br>";ksort($cursos);echo "ksort: Ordena respecto a las llaves <br>";var_dump($cursos);echo "<br>";krsort($cursos);echo "krsort: Ordena en el orden inverso respecto a las llaves <br>";var_dump($cursos);echo "<br>";echo "array_slice: Extrae una parte del array <br>";var_dump(array_slice($cursos,1));echo "<br>";echo "array_chunk: Divide el array en fragmentos <br>";var_dump(array_chunk($courses,2));echo "<br>";echo "array_shift: elimina el primer elemento del array y lo retorna <br>";var_dump(array_shift($courses));echo "<br>";echo "array_pop: elimina el ultimo elemento del array y lo retorna <br>";var_dump(array_pop($courses));echo "<br>";echo "array_unshift: agrega un elemento al incio del array y
retorna la cantidad de elementos <br>";var_dump(array_unshift($courses,'php'));echo "<br>";echo "array_push: agrega un elemento al incio del array y
retorna la cantidad de elementos <br>";var_dump(array_push($courses,'JavaScript'));echo "<br>";echo "array_flip: cambia los keys por los valores <br>";var_dump(array_flip($cursos));echo "<br>";
🍃Aquí está una lista de funciones para manipular arrays en PHP, con una breve explicación de su uso:
array_keys: Devuelve una matriz que contiene todas las claves de un array.
array_values: Devuelve una matriz que contiene todos los valores de un array.
array_merge: Combina varios arrays en uno solo.
array_diff: Devuelve una matriz que contiene las claves y valores que no están presentes en otro o más arrays.
array_intersect: Devuelve una matriz que contiene las claves y valores que están presentes en todos los arrays.
array_slice: Devuelve una porción de un array como una nueva matriz.
array_splice: Agrega o elimina elementos de un array y devuelve los elementos eliminados como una nueva matriz.
array_search: Devuelve la clave de un valor en un array o false si no se encuentra.
array_unique: Devuelve una matriz que contiene solo valores únicos.
array_reverse: Devuelve una matriz con los elementos en orden inverso.
array_map: Aplica una función a cada elemento de un array y devuelve una nueva matriz con los resultados.
array_reduce: Aplica una función acumuladora a cada elemento de un array y devuelve un valor único resultante.
array_filter: Filtra los elementos de un array según una condición y devuelve una nueva matriz con los elementos que cumplen la condición.
array_sum: Devuelve la suma de los valores de un array numérico.
sort: Ordena los elementos de un array.
array_pop: Elimina el último elemento de un array y devuelve su valor.
array_unshift: Agrega uno o más elementos al principio de un array.
array_push: Agrega uno o más elementos al final de un array.
array_flip: Invierte las claves con sus valores en un array.
Estas son solo algunas de las muchas funciones disponibles en PHP para manipular arrays. Es importante revisar la documentación de PHP para conocer todas las opciones disponibles y elegir la mejor solución para cada caso específico.
Les dejo la documentación oficial. https://www.php.net/manual/es/ref.array.php