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 關注
- 136 瀏覽
添加回答
舉報