Matriz PHP: asociativa, multidimensional
¿Qué es una matriz PHP?
Una matriz PHP es una variable que almacena más de un dato relacionado en una sola variable.
Piense en una matriz como si fuera una caja de bombones con ranuras en su interior.
El cuadro representa la matriz en sí, mientras que los espacios que contienen chocolates representan los valores almacenados en las matrices.
El siguiente diagrama ilustra la sintaxis anterior.
Matrices numéricas
Las matrices numéricas utilizan 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 utiliza siempre que queremos leer o asignar un nuevo valor a un elemento de una matriz.
A continuación se muestra la sintaxis para crear una matriz numérica en php.
Ejemplo de matriz
<?php $variable_name[n] = value; ?>
Or
<?php $variable_name = array(n => value, …); ?>
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 la 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] = 'Shaolin Monk'; $movie[1] = 'Drunken Master'; $movie[2] = 'American Ninja'; $movie[3] = 'Once upon a time in China'; $movie[4] = 'Replacement Killers'; ?>
Aquí,
A cada película se le asigna 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]="Once upon a time in China"; $movie[4]="Replacement Killers"; echo $movie[3]; $movie[3] = " Eastern Condors"; echo $movie[3]; ?>
Salida:
Once upon a time in China Eastern Condors
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 => "Shaolin Monk", 1 => "Drunken Master", 2 => "American Ninja", 3 => "Once upon a time in China", 4 =>"Replacement Killers" ); echo $movie[4]; ?>
Salida:
Replacement Killers
Matriz asociativa PHP
Las matrices asociativas se diferencian de las matrices numéricas en el sentido de que las matrices asociativas utilizan 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'] = value; $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 la 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("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); print_r($persons); echo ""; echo "Mary is a " . $persons["Mary"]; ?>
AQUÍ,
Salida:
Array ( [Mary] => Female [John] => Male [Mirriam] => Female ) Mary is a Female
Las matrices asociativas también son muy útiles a la hora de recuperar datos de la base de datos.
Los nombres de los campos se utilizan como claves de identificación.
Matrices PHP 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 de 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 inglés | Comedia |
Die Hard | Acción |
Expendables | 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 una matriz multidimensional. El siguiente código muestra la implementación.
<?php $movies =array( "comedy" => array("Pink Panther", "John English", "See no evil hear no evil"), "action" => array("Die Hard", "Expendables"), "epic" => array("The Lord of the rings"), "Romance" => array("Romeo and Juliet") ); print_r($movies); ?>
AQUÍ,
Salida:
Array ( [comedy] => Array ( [0] => Pink Panther [1] => John English [2] => See no evil hear no evil ) [action] => Array ( [0] => Die Hard [1] => Expendables ) [epic] => Array ( [0] => The Lord of the rings ) [Romance] => Array ( [0] => Romeo and Juliet ) )
Otra forma de definir la misma matriz es la siguiente
<?php $film=array( "comedy" => array( 0 => "Pink Panther", 1 => "john English", 2 => "See no evil hear no evil" ), "action" => array ( 0 => "Die Hard", 1 => "Expendables" ), "epic" => array ( 0 => "The Lord of the rings" ), "Romance" => array ( 0 => "Romeo and Juliet" ) ); echo $film["comedy"][0]; ?>
Salida:
Pink Panther
Nota: la matriz numérica de películas se ha anidado dentro de la matriz asociativa de categorías.
Matrices PHP: Operatoros
Operator | Nombre | Descripción | ¿Cómo hacerlo? | Salida |
---|---|---|---|---|
x+y | Union | Combina elementos de ambas matrices. |
<?php $x = array('id' => 1); $y = array('value' => 10); $z = $x + $y; ?> |
Matriz([id] => 1 [valor] => 10) |
X == y | Igual | 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"; } ?> |
Verdadero o 1 |
X === y | Idéntico | Compara tanto los valores como tipos de datos |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x === $y) { echo "true"; } else { echo "false"; } ?> |
Falso o 0 |
X != y, x <> y | No es igual |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x != $y) { echo "true"; } else { echo "false"; } ?> |
Falso o 0 | |
X !== y | No identicos |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x !== $y) { echo "true"; } else { echo "false"; } ?> |
Verdadero o 1 |
Funciones de matriz PHP
Función de conteo
La función de conteo se utiliza para contar la cantidad de elementos que contiene una matriz php. El siguiente código muestra la implementación.
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo count($lecturers); ?>
Salida:
3
función is_array
La función is_array se utiliza para determinar si una variable es una matriz o no. Veamos ahora un ejemplo que implementa las funciones is_array.
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo is_array($lecturers); ?>
Salida:
1
Ordenar
Esta función se utiliza para ordenar matrices por valores.
Si los valores son alfanuméricos, los ordena alfabéticamente.
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 $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); sort($persons); print_r($persons); ?>
Salida:
Array ( [0] => Female [1] => Female [2] => Male )
sortear
Esta función se utiliza para ordenar la matriz mediante la clave. El siguiente ejemplo ilustra su uso.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); ksort($persons); print_r($persons); ?>
Salida:
Array ( [John] => Male [Mary] => Female [Mirriam] => Female )
surtido
Este función se utiliza para ordenar la matriz utilizando los valores. El siguiente ejemplo ilustra su uso.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); asort($persons); print_r($persons); ?>
Salida:
Array ( [Mary] => Female [Mirriam] => Female [John] => Male )
¿Por qué utilizar matrices?
- El contenido de las matrices se puede estirar,
- Las matrices ayudan a agrupar fácilmente información relacionada, como los detalles de inicio de sesión del servidor.
- Las matrices ayudan a escribir código más limpio.
Resumen
- Las matrices son variables especiales con capacidad de almacenar múltiples valores.
- Las matrices son flexibles y se pueden estirar fácilmente para acomodar más valores.
- Las matrices numéricas utilizan números para las claves de la matriz.
- La matriz asociativa de PHP utiliza nombres descriptivos para las claves de la matriz
- Los arreglos multidimensionales contienen otros arreglos dentro de ellos.
- La función de recuento se utiliza para obtener la cantidad de elementos que se han almacenado en una matriz.
- La función is_array se utiliza para determinar si una variable es una matriz válida o no.
- Otras funciones de matriz incluyen ordenar, ksort, clasificar, etc.