我想把这些数组组合成一个新的数组,基于相同的键号来创建表。这是我的代码。
$arr3 = array();
print '<pre>';
print_r($bonus_table);
print '</pre>';
foreach($bonus_table as $key => $row) {
$arr3 = array_merge($row['cells'],$arr3);
}
return $arr3;
这是我的代码的输出。基本上这是数组的当前结构:
Array
(
[0] => Array
(
[cells] => Array
(
[0] => DEPOTS
[1] => PRICES
)
)
[1] => Array
(
[cells] => Array
(
[0] => 50
[1] => 25
)
)
[2] => Array
(
[cells] => Array
(
[0] => 100
[1] => 50
)
)
)
但是我想用下面的结构转换上面的输出。所需的数组应该看起来像这样:
Array
(
[0] => Array
(
[cells] => Array
(
[0] => DEPOTS
[1] => 50
[2] => 100
)
)
[1] => Array
(
[cells] => Array
(
[0] => PRICES
[1] => 25
[2] => 50
)
)
)
3条答案
按热度按时间guicsvcw1#
用下面的代码替换你的
foreach
循环将产生你想要的数据:演示:https://onlinephp.io/c/06b36
在这里,我们循环输入数组(
$bonus_table
),并在输出数组($arr3
)中收集数据。ctrmrzij2#
您可以使用
array_column
输出
tsm1rwdh3#
因为数组中有3层,中间层使用
cells
作为需要保留的键,所以array transposition可以通过在另一个循环中嵌套一个循环来快速完成,而无需任何函数调用。根据记录,我认为在数组结构中使用冗余的
cells
级别没有太大价值。代码:(Demo)