Reordering Multidimensional Columnar Data into Row-based Structure
Given an associative array with column-oriented data, the task is to transpose it into a multidimensional array consisting of rows. The data in the original array is arranged by columns, and the goal is to merge the values from the same column into rows.
Original Array:
$where = [ 'id' => [ 12, 13, 14 ], 'date' => [ '1999-06-12', '2000-03-21', '2006-09-31' ] ];
Desired Output:
$comb = [ [12, '1999-06-12'], [13, '2000-03-21'], [14, '2006-09-31'] ];
Solution:
One effective way to achieve this data restructuring is to iterate through the values of each column using a loop and combine them into an array for each row. Here's an example:
$result = [];
foreach ($where['id'] as $key => $id) {
$result[] = [$id, $where['date'][$key]];
}
array_column() Approach:
An elegant alternative to the loop-based solution is to use the array_column() function, which extracts a specific column from a multidimensional array.
$result = [];
foreach ($where['id'] as $key => $id) {
$result[] = array_column($where, $key);
}
The array_column() function returns the specified column as an array, which can then be combined with the values from the corresponding row.
Output:
Both solutions will produce the desired output:
[ [12, '1999-06-12'], [13, '2000-03-21'], [14, '2006-09-31'] ]
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3