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

Linda Hamilton
Release: 2024-10-25 10:16:02
Original
178 people have browsed it

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

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'
    ]
];
Copy after login

Desired Output:

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

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:

<code class="php">$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = [$id, $where['date'][$key]];
}</code>
Copy after login

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.

<code class="php">$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = array_column($where, $key);
}</code>
Copy after login

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']
]
Copy after login

The above is the detailed content of How to Transpose a Columnar Data Structure into Row-based Format in PHP?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!