Agregar matriz a matriz en PHP

Olorunfemi Akinlua 20 junio 2023
  1. Uso de los bucles for y foreach para agregar una matriz a otra en PHP
  2. Uso de la función array_merge() para agregar una matriz a otra en PHP
  3. Uso de la función array_push() para agregar matriz a matriz en PHP
Agregar matriz a matriz en PHP

Las matrices contienen una serie de elementos indexados del mismo tipo de datos, a menudo para una iteración y una gestión de datos más rápidas.

Por lo general, para acceder a los elementos de la matriz, recorrerá la matriz. Por ejemplo, en una aplicación PHP, una matriz podría contener datos del formulario de registro y otra matriz podría contener datos de la sección de detalles de la cuenta. Para usar ambas matrices en una secuencia, necesitamos agregar ambas matrices. Para lograr esto, necesitamos agregar la segunda matriz a la primera, y las diferentes funciones se comportan de manera diferente.

Este tutorial analiza los diferentes métodos para agregar dos matrices para formar una matriz en PHP.

Uso de los bucles for y foreach para agregar una matriz a otra en PHP

Un método simple para agregar una matriz a otra matriz es seleccionar la segunda matriz, recorrer todos los elementos y agregar cada elemento a la primera matriz. Sin embargo, esta solución en particular es bastante larga e ineficiente para arreglos más grandes.

$container = ["hair extension", "scissors"];
$shopping_lists = ["hair cream", "hair fryer", "makeup set"];
for($index = 0; $index < count($shopping_lists ); $index++){
    array_push($container, $shopping_lists[$index]);
}
print_r($container)

Producción :

Array
(
    [0]    hair extension
    [1]    scissors
    [2]    hair cream
    [3]    hair fryer
    [4]    makeup set
)
   true

Además, puede aplicar el mismo enfoque a una matriz asociativa. Sin embargo, viene con la misma ineficiencia y complejidad.

$customer = array( 
    "name" => "Garner", 
    "email" => "g.abded@gmail.com", 
    "age" => 34, 
    "gender" => "female",
    "account_type" => "starter"
); 

$account = array(
    "current_course" => "Ruby Crash Course",
    "payment_channel" => "Stripe",
    "browser" => "Edge"
);

foreach($account as $key => $value) {
    $customer[$key] = $value;
}

print_r($customer)

Producción :

Array
(
    [name]    Garner
    [email]    g.abded@gmail.com
    [age]    34
    [gender]    female
    [account_type]    starter
    [current_course]    Ruby Crash Course
    [payment_channel]    Stripe
    [browser]    Edge
)
   true

Uso de la función array_merge() para agregar una matriz a otra en PHP

La función array_merge() fusiona dos o más matrices y agrega los elementos de una matriz al final de la matriz anterior, y así sucesivamente, hasta la última matriz. Esta función funciona para matrices indexadas, asociativas y multidimensionales. A diferencia del método anterior, este enfoque crea una nueva matriz y no se agrega a la primera matriz.

Este método puede funcionar con varias matrices. Con más detalle, podemos usar este enfoque para agregar el par clave-valor (matrices asociativas) entre sí para formar una sola matriz. Lo mismo ocurre con las matrices de índice.

$details = [
    "name" => "Clement",
    "email" => "clement@gmail.com",
    "gender" => "male"
];

$accounts = [
    "card" => "mastercard",
    "processor" => "stripe",
    "pro" => True
];

$account_details = array_merge($details, $accounts);

print_r($account_details);

Producción :

Array
(
    [name]    Clement
    [email]    clement@gmail.com
    [gender]    male
    [card]    mastercard
    [processor]    stripe
    [pro]    1
)
   true

Aquí se explica cómo utilizar la función array_merge() en tres matrices.

$details = [
    "name" => "Clement",
    "email" => "clement@gmail.com",
    "gender" => "male"
];
$accounts = [
    "card" => "mastercard",
    "processor" => "stripe",
    "pro" => True
];
$functions = [
    "movies" => "inferno"
];
$account_details = array_merge($details, $accounts, $functions);
print_r($account_details);

Producción :

Array
(
    [name]    Clement
    [email]    clement@gmail.com
    [gender]    male
    [card]    mastercard
    [processor]    stripe
    [pro]    1
    [movies]    inferno
)
   true

Este método es compatible con todas las versiones de PHP 7.0 y superiores.

Uso de la función array_push() para agregar matriz a matriz en PHP

La función array_push() empuja la(s) matriz(es) al final de la matriz como una pila (LIFO). Puede usar esta función para agregar una matriz de índice a una matriz asociativa, y automáticamente creará un índice numérico para la matriz de índice empujada a la matriz asociativa. Si se presionan dos matrices de índice, la primera matriz de índice contiene el índice numérico de 0, y la segunda matriz de índice contiene el índice numérico de 1. Para N matrices presionadas, el índice numérico será N-1.

Además, puede enviar matrices de índice a una matriz de índice y matrices asociativas a una matriz asociativa.

$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Geology', 'Machine Learning'];
$BD_Tools = array_push($basic_data, $tools);

print_r($basic_data);

Producción :

Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Array
        (
            [0]    Geology
            [1]    Machine Learning
        )
)
   true

Además, use el operador ... dentro de la función array_push() para permitir que todos los elementos dentro de las matrices insertadas tengan su propio índice numérico en lugar de uno para todos.

$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Geology', 'Machine Learning'];
$BD_Tools = array_push($basic_data, ...$tools);

print_r($basic_data);

Producción :

Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Geology
    [1]    Machine Learning
)
   true

Para las operaciones de inserción de matrices asociativas, no puede usar el operador ..., ya que generará un error.

TypeError: array_push() no acepta parámetros con nombre desconocido nulo

Por lo tanto, la única forma de usar la función array_push() con dos o más matrices es a través de los medios predeterminados.

$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Course' => 'Geology', 'Approach' => 'Machine Learning'];
$BD_Tools = array_push($basic_data, $tools);

print_r($basic_data);

Producción :

Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Array
        (
            [Course]    Geology
            [Approach]    Machine Learning
        )

)
   true
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn