Arrays: array asociativo, array multidimensional
¿Qué es un array de PHP?
Un array (o también matriz) PHP es una variable que almacena más de una pieza de datos relacionados en una sola variable.
Piense en una matriz como una caja de bombones con ranuras adentro.
La caja representa la matriz en sí, mientras que los espacios que contienen chocolates representan los valores almacenados en las matrices.
En este capítulo aprenderás:
- arrays numéricos
- Matriz o array asociativo
- arrays multidimensionales
- Operadores de arrays
arrays numéricos
Las arrays numéricas usan números como claves de acceso.
Una clave de acceso es una referencia a una ranura de memoria en una variable de matriz.
La clave de acceso se usa cuando queremos leer o asignar un nuevo valor a un elemento de matriz.
A continuación se muestra la sintaxis para crear una matriz numérica en php. Ejemplo de matriz
<?php $variable_name[n] = valor; ?>
O
<?php
$variable_name = array(n => valor, ...);
?>
AQUÍ,
- «$ Variable_name …» es el nombre de la variable
- «[N]» es el número de índice de acceso del elemento
- «Valor» es el valor asignado al elemento de matriz.
Veamos ahora un ejemplo de una matriz numérica.
Supongamos que tenemos 5 películas que queremos almacenar en variables de matriz.
Podemos usar el ejemplo que se muestra a continuación para hacer eso.
<?php $movie[0] = 'Monje Shaolin'; $movie[1] = 'Maestro borracho'; $movie[2] = 'American Ninja'; $movie[3] = 'Érase una vez en China'; $movie[4] = 'Asesinos de reemplazo'; ?>
Cada película recibe un número de índice que se utiliza para recuperar o modificar su valor. Observe el siguiente código:
<?php $movie[0] = "Shaolin Monk"; $movie[1] = "Drunken Master"; $movie[2] = "American Ninja"; $movie[3] = "Érase una vez en China"; $movie[4] = "Asesinos de reemplazo"; echo $movie[3]; $movie[3] = "Cóndores orientales"; echo $movie[3]; ?>
Salida:
Érase una vez en China Cóndores orientales
Como puede ver en los ejemplos anteriores, trabajar con matrices en PHP cuando se trata de múltiples valores de la misma naturaleza es muy fácil y flexible.
Alternativamente, las variables de matriz anteriores también se pueden crear utilizando el siguiente código.
<?php $movie = array( 0 => "Monje Shaolin", 1 => "Maestro borracho", 2 => "Ninja americano", 3 => "Érase una vez en China", 4 => "Asesinos de reemplazo"); echo $movie[4]; ?>
Salida:
Asesinos de reemplazo
array asociativo .
La matriz asociativa difiere de la matriz numérica en el sentido de que las matrices asociativas usan nombres descriptivos para las claves de identificación.
A continuación se muestra la sintaxis para crear una matriz asociativa en php.
<?php $variable_name['key_name'] = valor; $variable_name = array('keyname' => value); ?>
AQUÍ,
- «$ Variable_name …» es el nombre de la variable
- «[‘Key_name’]» es el número de índice de acceso del elemento
- «Valor» es el valor asignado al elemento de matriz.
Supongamos que tenemos un grupo de personas y queremos asignar el género de cada persona a sus nombres.
Podemos usar una matriz asociativa para hacer eso. El siguiente código nos ayuda a hacerlo.
<?php $persons = array( "Maria" => "Mujer", "John" => "Hombre", "Miriam" => "Mujer"); print_r($ personas); echo "María es una". $ personas ["Maria"]; ?>
Salida:
array([Maria] => Mujer [John] => Hombre [Mirriam] => Mujer) Maria es una Mujer
La matriz asociativa también es muy útil cuando se recuperan datos de la base de datos.
Los nombres de campo se utilizan como claves de identificación.
arrays multidimensionales.
Estas son matrices que contienen otras matrices anidadas.
La ventaja de las matrices multidimensionales es que nos permiten agrupar datos relacionados.
Veamos ahora un ejemplo práctico que implementa una matriz multidimensional php.
La siguiente tabla muestra una lista de películas por categoría.
Título de la película | Categoría |
---|---|
Pantera Rosa |
Comedia |
John English |
Comedia |
Morir duro |
Acción |
Objetos gastables de suministro |
Acción |
El Señor de los Anillos |
Épico |
Romeo y Julieta |
Romance |
No veo maldad no oigo maldad |
Comedia |
La información anterior se puede representar como un array multidimensional. El siguiente código muestra la implementación.
<?php $películas = array( "comedia" => array( "Pantera Rosa", "John English", "No veas el mal, no escuches el mal"), "action" => array ("Die Hard", "Expendables"), "epic" => array("El señor de los anillos"), "Romance" => array("Romeo y Julieta") ); print_r ($ películas); ?>
Salida:
Array ( [comedia] => Array([0] => Pantera Rosa [1] => John English [2] => No ver mal, no escuchar mal) [acción] => Array([0] => Die Hard [ 1] => Prescindibles) [épica] => Array([0] => El Señor de los anillos) [Romance] => Array([0] => Romeo y Julieta) )
Otra forma de definir la misma matriz es la siguiente
<?php $film = array ( "comedia" => array( 0 => "Pantera Rosa", 1 => "John English", 2 => "No veas el mal, no escuches el mal" ), "action" => array( 0 => "Die Hard", 1 => "Prescindibles" ), "epic" => array( 0 => "El señor de los anillos" ), "Romance" => array( 0 => "Romeo y Julieta" ) ); echo $ film ["comedia"] [0]; ?>
Salida:
Pantera Rosa
Nota: la matriz numérica de películas se ha anidado dentro de la matriz asociativa de categorías
operadores
Operador |
Descripción |
---|---|
x + yUnión |
Combina elementos de ambas matrices.<?php $x = array('id' => 1); $y = array('valor' => 10); $z = $x + $y; ?> array([id] => 1 [valor] => 10)
|
x == yIgual |
Compara dos matrices si son iguales y devuelve verdadero si es así.<?php $x = array("id" => 1); $y = array("id" => "1"); if($x == $y) { echo "true"; } else { echo "false"; } ?> true o 1 |
x === yIdéntico |
Compara tanto los valores como los tipos de datos<?php $x = array("id" => 1); $y = array("id" => "1"); if($x === $y) { echo "true"; } else { echo "false"; } ?> false o 0 |
x ! = y , x <> yNo es igual |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x != $y) { echo "true"; } else { echo "false"; } ?> False o 0 |
x ! == yNo identicos |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x !== $y) { echo "true"; } else { echo "false"; } ?> true o 1 |
Funciones de arrays
Función de conteo
La función de conteo se usa para contar el número de elementos que contiene una matriz php. El siguiente código muestra la implementación.
<?php $profesores = array("Sr. Jones", "Sr. Banda", "Sra. Smith"); echo count($profesores); ?>
Salida:
3
función is_array
La función is_array se usa para determinar si una variable es una matriz o no. Veamos ahora un ejemplo que implementa las funciones is_array.
<?php $profesores = array("Sr. Jones", "Sr. Banda", "Sra. Smith"); echo is_array($profesores); ?>
Salida:
1
sort
Esta función se utiliza para ordenar las matrices por los valores.
Si los valores son alfanuméricos, los ordena en orden alfabético.
Si los valores son numéricos, los ordena en orden ascendente.
Elimina las claves de acceso existentes y agrega nuevas claves numéricas.
La salida de esta función es una matriz numérica
<?php $personas = array( "Mary" => "Mujer", "John" => "Hombre", "Mirriam" => "Mujer"); sort($personas); print_r($personas); ?>
Salida:
array([0] => Mujer[1] => Mujer[2] => Hombre)
ksort
Esta función se utiliza para ordenar la matriz con la key. El siguiente ejemplo ilustra su uso.
<?php $persons = array( "Mary" => "Mujer", "John" => "Hombre", "Mirriam" => "Mujer"); ksort($personas); print_r($personas); ?>
Salida:
array([John] => Hombre[Mary] => Mujer[Mirriam] => Mujer)
asort
Esta función se usa para ordenar la matriz usando los value. El siguiente ejemplo ilustra su uso.
<?php $personas = array( "Mary" => "Mujer", "John" => "Hombre", "Mirriam" => "Mujer" ); asort($personas); print_r ($personas); ?>
Salida:
array([Mary] => Mujer [Mirriam] => Mujer [John] => Hombre);
¿Por qué usar arrays?
- El contenido de los arrays se puede estirar,
- Los arrays ayudan fácilmente a agrupar información relacionada, como los detalles de inicio de sesión del servidor
- Los arrays ayudan a escribir un código más limpio.
Resumen
- Los arrays son variables especiales con la capacidad de almacenar valores múltiples.
- Las matrices son flexibles y se pueden estirar fácilmente para acomodar más valores
- Las matrices numéricas usan números para las claves de la matriz
- La matriz asociativa de PHP utiliza nombres descriptivos para las claves de matriz
- Las matrices multidimensionales contienen otras matrices dentro de ellas.
- La función de conteo se usa para obtener la cantidad de elementos que se han almacenado en un array.
- La función is_array se usa para determinar si una variable es un array válido o no.
- Otras funciones de array incluyen sort, ksort, assort, etc.