2 回答
TA贡献1871条经验 获得超13个赞
如果您喜欢语言结构和基本算术,那么您可以简单地遍历数组,除以 3 并将该浮点值用作第一级键——php 会自动将该floor()
值形成一个整数
代码:
foreach ($array as $index => $subarray) {
$key = key($subarray);
$result[intdiv($index, 3)][$key] = $subarray[$key];
}
var_export($result);
或者,如果您更喜欢函数式语法(我经常这样做),您可以形成子数组组,然后合并/展平这些组。下面的技术不需要声明变量$result,可以写成一行。
代码:
var_export(
array_map(
function($v) {
return array_merge(...$v);
},
array_chunk($array, 3)
)
);
这两种技术都提供以下输出:
array (
0 =>
array (
'term_title' => 'black',
'color_quantity' => 2,
'color_price' => 22,
),
1 =>
array (
'term_title' => 'blue',
'color_quantity' => 3,
'color_price' => 33,
),
)
TA贡献1757条经验 获得超8个赞
不确定 and 是从哪里name
进来value
的$data['name']
,$data['value']
但是您可以使用array_chunk
它们将它们分成块并将它们分配给$posts
。
<?php
$posts = array();
foreach(array_chunk($field_data,3) as $data){
$temp = [];
foreach($data as $field){
foreach($field as $key => $value){
$temp[$key] = $value;
}
}
$posts[] = $temp;
}
print_r($posts);
- 2 回答
- 0 关注
- 106 浏览
添加回答
举报