我有一个数组,其中包含从数据库中提取的统计信息。每个内部数组都有一个基于其来源的键。我想将所有这些分组到一个新数组中。
array (
0 =>
array (
7 =>
array (
'y' => 83,
'label' => '2019-01-04 00:00:00',
),
),
1 =>
array (
7 =>
array (
'y' => 80,
'label' => '2019-01-02 00:00:00',
),
),
2 =>
array (
8 =>
array (
'y' => 50,
'label' => '2019-01-03 00:00:00',
),
),
)
会是这样的:
array (
0 =>
array(
0 =>
array(
'y' => 83,
'label' => '2019-01-04 00:00:00',
),
1 =>
array(
'y' => 80,
'label' => '2019-01-02 00:00:00',
),
),
1 =>
array(
0 =>
array(
'y' => 50,
'label' => '2019-01-03 00:00:00',
),
),
)
但是,我似乎无法使用array_values()
来实现这一目标。我想将所有的7组成一个数组,并将所有的8组成一个数组,但是,将来我可能会有更多的数字键。
有可以用来执行此操作的功能吗?
答案 0 :(得分:3)
假设您的输入在变量$data
中,则可以执行以下操作:
$result = [];
foreach($data as $arr) {
foreach($arr as $k => $v) {
$result[$k][] = $v;
}
}
这将保留原始的内部键值,因此对于您的示例输入,结果将具有键7和8,而不是0和1。
如果您要那样做,请多做一件事:
$result = array_values($result);
答案 1 :(得分:0)
试试看!
fdate