首页  >  文章  >  后端开发  >  如何在 PHP 中将列式数据结构转换为基于行的格式?

如何在 PHP 中将列式数据结构转换为基于行的格式?

Linda Hamilton
Linda Hamilton原创
2024-10-25 10:16:02179浏览

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

将多维列式数据重新排序为基于行的结构

给定一个具有面向列数据的关联数组,任务是将其转置为由行组成的多维数组。原始数组中的数据按列排列,目标是将同一列的值合并到行中。

原始数组:

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

所需输出:

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

解决方案:

实现此数据重组的一种有效方法是使用以下方法迭代每列的值一个循环并将它们组合成每行的数组。下面是一个示例:

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

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

array_column() 方法:

基于循环的解决方案的一个优雅替代方案是使用 array_column() 函数,该函数提取多维数组中的特定列。

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

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

array_column() 函数将指定列作为数组返回,然后可以将其与相应行中的值组合。

输出:

两种解决方案都会产生所需的输出:

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

以上是如何在 PHP 中将列式数据结构转换为基于行的格式?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn