一尘不染

将列数据的多维数组重组为行数据的多维数组

php

我具有以下列数据的关联数组:

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

我需要将结构转置/旋转为行数组(将合并的列数据分配给它们各自的行)。我不需要结果中的列名。

预期产量:

$comb = array(
    array(12, '1999-06-12'),
    array(13, '2000-03-21'),
    array(14, '2006-09-31')
);

阅读 223

收藏
2020-05-26

共1个答案

一尘不染

正如Kris
Roofe在删除的答案中所说,array_column的确是一种更为优雅的方法。只要确保将其放入某种foreach循环中即可,就像Sahil
Gulati向您展示的那样。例如,像这样:

$result = array();

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

var_dump输出$result正是您要寻找的

array(3) {
  [0]=>
  array(2) {
    [0]=>
    int(12)
    [1]=>
    string(10) "1999-06-12"
  }
  [1]=>
  array(2) {
    [0]=>
    int(13)
    [1]=>
    string(10) "2000-03-21"
  }
  [2]=>
  array(2) {
    [0]=>
    int(14)
    [1]=>
    string(10) "2006-09-31"
  }
}
2020-05-26