"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo agrupar filas de matrices asociativas por valor de columna en PHP?

¿Cómo agrupar filas de matrices asociativas por valor de columna en PHP?

Publicado el 2024-11-20
Navegar:497

How to Group Associative Array Rows by Column Value in PHP?

Agrupación de filas de matrices asociativas por valor de columna

En programación, puede encontrar situaciones en las que necesite reorganizar los datos almacenados en matrices asociativas. Una tarea común es agrupar filas en la matriz por un valor de columna específico mientras se conservan las claves originales de primer nivel.

Considere la siguiente matriz asociativa de matrices asociativas conocida como $old_arr:

[
    'a' => ['id' => 20, 'name' => 'chimpanzee'],
    'b' => ['id' => 40, 'name' => 'meeting'],
    'c' => ['id' => 20, 'name' => 'dynasty'],
    'd' => ['id' => 50, 'name' => 'chocolate'],
    'e' => ['id' => 10, 'name' => 'bananas'],
    'f' => ['id' => 50, 'name' => 'fantasy'],
    'g' => ['id' => 50, 'name' => 'football']
]

El objetivo es crear una nueva matriz, $arr, donde las filas se agrupan según el campo de identificación. La matriz resultante debería verse así:

array
(
    10 => array
          (
            e => array ( id = 10, name = bananas )
          )
    20 => array
          (
            a => array ( id = 20, name = chimpanzee )
            c => array ( id = 20, name = dynasty )
          )
    40 => array
          (
            b => array ( id = 40, name = meeting )
          )
    50 => array
          (
            d => array ( id = 50, name = chocolate )
            f => array ( id = 50, name = fantasy )
            g => array ( id = 50, name = football )
          )
)

Para lograr esto, puedes seguir estos pasos:

  1. Inicializar una matriz vacía $arr.
  2. Iterar sobre cada fila en $old_arr.
  3. Utilice el valor de id como clave en $arr. Si la clave no existe, cree una nueva matriz.
  4. Asigne la fila actual a la clave correspondiente en $arr.
  5. Ordene la matriz $arr por SORT_NUMERIC para asegurarse de que las claves estén en orden numérico.

El código PHP proporcionado sigue este enfoque para generar el resultado deseado:

$arr = array();

foreach ($old_arr as $key => $item) {
   $arr[$item['id']][$key] = $item;
}

ksort($arr, SORT_NUMERIC);
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3