Funciones PHP para trabajar con los Array


Lección 12 / 24

Funciones PHP para trabajar con los Array

Php Desarrollador php

La última etapa de nuestro viaje para descubrir las funciones integradas de php se refiere a todas aquellas funciones relacionadas con la clasificación, la gestión y, en general, las operaciones con arreglos de php.
Una vez más especificamos que en esta guía no encontrarás todas las funciones de php existentes para trabajar con arreglos, sino las más útiles y que, con mayor probabilidad, necesitarás usar en un proyecto real.

Te recordamos que, en nuestro viaje para aprender PHP, ya hemos visto cómo hacer un bucle de matrices en la guía sobre los conceptos de secuencia, selección e iteración.

Con eso en mente, veamos algunas funciones integradas que pueden resultar útiles.

Contar los elementos de un array: php array count()

En tu viaje como desarrollador web de php, es posible que te enfrentes a la necesidad de saber cuántos elementos están contenidos en un php array. ¡Así de sencillo! La función incorporada adecuada para este propósito es count()
Veamos una aplicación.

Supongamos que tenemos un array que contiene los inscritos en un curso php online.

$iscritti = [ ‘Valeria’ , ‘Paola’ ,  ‘Alejandro’ , ‘Claudia’ , ‘Carla’ , ‘David’ , ‘Marco’ , ‘Leo’ ];

echo “el número de inscritos en el curso php online es" . count($inscritos);

Aprovechando nuestro querido php echo, lo que nos saldrá impreso en pantalla será "el número de alumnos matriculados en el curso online de php es 8". ¡Entonces sabremos que 8 personas están interesadas en aprender php!

Extraer parte de un array: php array_slice()

Ahora imaginemos que queremos considerar solo a ciertas personas de nuestra lista de estudiantes inscritos en el curso de php online: ¡David, Marco y Leo, de hecho, tuvieron suerte y tienen derecho a un descuento! Pero, ¿cómo sugerimos que PHP analice solo los 3?

La función que nos permite extraer solo una parte de nuestra matriz es array_slice().
Esta función acepta 3 parámetros:

  • array inicial
  • el elemento desde el que comenzará la extracción, que se define como offset 
  • el número de elementos para extrapolar a partir del elemento offset, es decir, la longitud del “trozo” de array que nos interesa.

Tratemos de entender mejor usando el ejemplo anterior.

$inscritos = [ ‘Valeria’ , ‘Paola’ ,  ‘Alejandro’ , ‘Claudia’ , ‘Carla’ , ‘David’ , ‘Marco’ , ‘Leo’ ];

$output = array_slice($inscritos, 4, 3);
print_r ($output);

En este caso le habríamos dicho a PHP que devuelva como output a David, Marco y Leo, es decir, los últimos 3 nombres de nuestra array inicial.
¡Recuerda! En los php array comienza a contar desde 0. El primer elemento estará en la posición 0.

Por eso, en el ejemplo anterior, el elemento de compensación indicado es 4: php comenzará a contar desde 'Carla' en adelante.

Verificar el contenido de un array: php in_array()

¡Bien! Ahora que tenemos nuestra lista de inscritos en cursos de php online, sabemos cuántos hay e incluso sabemos cuáles de ellos son elegibles para descuentos, creemos que podemos dormir tranquilos y mostrarles cómo y por qué aprender php. ¡Atención! Hubo un pequeño problema de comunicación interna y nos preguntan si realmente está en la lista una alumna llamada Marta. ¿Cómo verificar si el nombre de Marta está presente en el array de los inscritos? ¡No entres en pánico! La función adecuada en este caso es in_array() que nos permite verificar el contenido de un array. Esta función acepta dos parámetros: el valor que estamos buscando y el array en el que queremos buscarlo. Veámoslo en el código.

$inscritos = [ ‘Valeria’ , ‘Paola’ ,  ‘Alejandro’ , ‘Claudia’ , ‘Carla’ , ‘David’ , ‘Marco’ , ‘Leo’ ];
if (in_array( ‘Marta’ , $inscritos)) {

echo “Marta es parte de los inscritos al curso php online”;
} else {
echo “Marta no está entre los inscritos al curso php online”;
}

¡Obtendremos por tanto como output que Marta no se encuentra entre los alumnos matriculados en el curso y podremos comunicarlo a los responsables!

Clasificación de los array: php array sort()

Otro tipo de función built-in muy útil es la que le permite ordenar los array.
Hay varias funciones que php proporciona para hacer esto. Veremos algunos de ellos, respectivamente inherentes a los array simples y a los array asociativos (array clave-valor)

Clasificación de array simples

La ordenación de array numéricos se puede manejar en orden ascendente o descendente; dependiendo de este factor, las funciones incorporadas a utilizar serán:

  • sort() permite ordenar array numéricos en orden ascendente, de menor a mayor;
  • rsort() es el inverso exacto de la función anterior: ordena los array numéricos en orden descendente;

Clasificación de array asociativos (clave-valor)

La ordenación de array asociativos se puede manejar en orden ascendente o descendente, y también la voluntad de ordenar por valor o por clave. En el primer caso (en función del valor) las funciones a las que nos referiremos serán:

  • asort() por orden ascendente;
  • arsort() por orden descendente;

 

Si, por el contrario, queremos proceder a ordenar array asociativos en función de la clave, las funciones útiles serán:

  • ksort() por orden ascendente;
  • krsort() por orden descendente;

Unir los array: php array_merge()

Supongamos ahora que tienes más de un curso de php online.
Otras listas similares se agregarán a nuestra lista de inscritos. Por lo tanto, tendremos una situación en la que nuestro array $inscritos se unirá a otros array, como $inscritos2, $inscritos3... etc.

¿Qué pasaría si te dijéramos que es posible, por ejemplo, tener un solo array grande con todos los estudiantes inscritos en los cursos de php 2022?
En este caso, la función array_merge() viene en nuestra ayuda, lo que nos permite fusionar dos o más array.
¿Como funciona? Los elementos de un array se añaden después de los del array anterior y, en caso de valores iguales, el último sobrescribirá a los demás.

Veamos un ejemplo.

(Para no ir demasiado lejos y perder el enfoque en el propósito real del ejemplo, fingiremos que el array $inscritos contiene solo 3 nombres)


$inscritos = [ ‘Valeria’ , ‘Paola’ ,  ‘Alejandro’ ];
$inscritos2 = [ ‘Miriam’ , ‘Julia’ ];
$inscritos3 = [ ‘Laura’ , ‘Octavio’ ];

$inscritos_totales = array_merge($inscritos, $inscritos2, $inscritos3);
print_r($inscritos_totales);

¿Qué nos devolverá php? 

Array
(
[0] => Valeria
[1] => Paola
[2] => Alejandro
[3] => Miriam
[4] => Julia
[5] => Laura
[6] => Octavio
)

Extraer claves o valores de un array associativo: array_keys() e array_values()

Las últimas dos funciones incorporadas de php que analizamos son aquellas útiles para extraer claves o valores de un array asociativo.
Hay dos funciones a considerar para este propósito:

  • array_keys()
  • array_values()
     

Veamos un ejemplo práctico, con un array asociativo que contiene docentes y las materias que enseñan: 

<?php

$teachers = [
    'David' => ['PHP', 'Laravel', 'Python'],
    'Marco' => ['HTML', 'CSS', 'Javascript', 'Vue'],
    'Roberto' => ['PHP', 'Laravel', 'Flutter'],
];


print_r(array_keys($teachers));
print_r(array_values($teachers));

Array
(  

   [0] => David
  [1] => Marco
  [2] => Roberto
)

Array
(

   [0] => Array
        (
          [0] => PHP
          [1] => Laravel
          [2] => Python
        )

  [1] => Array
        (
          [0] => HTML
          [1] => CSS
          [2] => Javascript
          [3] => Vue
        )



 [3] => Array
        (
          [0] => PHP
          [1] => Laravel
          [2] => Flutter
        )
)

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad