Reordenando dados colunares multidimensionais em estrutura baseada em linhas
Dado um array associativo com dados orientados a colunas, a tarefa é transpô-los para uma matriz multidimensional que consiste em linhas. Os dados na matriz original são organizados por colunas e o objetivo é mesclar os valores da mesma coluna em linhas.
Array original:
$where = [ 'id' => [ 12, 13, 14 ], 'date' => [ '1999-06-12', '2000-03-21', '2006-09-31' ] ];
Saída desejada:
$comb = [ [12, '1999-06-12'], [13, '2000-03-21'], [14, '2006-09-31'] ];
Solução:
Uma maneira eficaz de conseguir essa reestruturação de dados é iterar pelos valores de cada coluna usando um loop e combiná-los em uma matriz para cada linha. Aqui está um exemplo:
$result = [];
foreach ($where['id'] as $key => $id) {
$result[] = [$id, $where['date'][$key]];
}
array_column() Abordagem:
Uma alternativa elegante para a solução baseada em loop é usar a função array_column(), que extrai uma coluna específica de um multidimensional matriz.
$result = [];
foreach ($where['id'] as $key => $id) {
$result[] = array_column($where, $key);
}
A função array_column() retorna a coluna especificada como uma matriz, que pode então ser combinada com os valores da linha correspondente.
Saída:
Ambas as soluções produzirão o resultado desejado:
[ [12, '1999-06-12'], [13, '2000-03-21'], [14, '2006-09-31'] ]
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3