"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 transponer una estructura de datos en columnas a un formato basado en filas en PHP?

¿Cómo transponer una estructura de datos en columnas a un formato basado en filas en PHP?

Publicado el 2024-11-08
Navegar:404

How to Transpose a Columnar Data Structure into Row-based Format in PHP?

Reordenación de datos en columnas multidimensionales en una estructura basada en filas

Dada una matriz asociativa con datos orientados a columnas, la tarea es transponerla a una matriz multidimensional que consta de filas. Los datos de la matriz original están organizados por columnas y el objetivo es fusionar los valores de la misma columna en filas.

Matriz original:

$where = [
    'id' => [
        12,
        13,
        14
    ],
    'date' => [
        '1999-06-12',
        '2000-03-21',
        '2006-09-31'
    ]
];

Salida deseada:

$comb = [
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
];

Solución:

Una forma efectiva de lograr esta reestructuración de datos es iterar a través de los valores de cada columna usando un bucle y combinarlos en una matriz para cada fila. Aquí hay un ejemplo:

$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = [$id, $where['date'][$key]];
}

array_column() Enfoque:

Una alternativa elegante a la solución basada en bucles es utilizar la función array_column(), que extrae una columna específica de un análisis multidimensional. matriz.

$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = array_column($where, $key);
}

La función array_column() devuelve la columna especificada como una matriz, que luego se puede combinar con los valores de la fila correspondiente.

Salida:

Ambas soluciones producirán el resultado deseado:

[
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
]
Ú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