亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將單元素關聯數組重組為分組子數組?

如何將單元素關聯數組重組為分組子數組?

PHP
躍然一笑 2023-04-21 15:57:29
我有一個關聯數組:Array ( [0] => Array ( [term_title] => black ) [1] => Array ( [color_quantity] => 2 ) [2] => Array ( [color_price] => 22 ) [3] => Array ( [term_title] => blue ) [4] => Array ( [color_quantity] => 3 ) [5] => Array ( [color_price] => 33 ))我怎樣才能把它改成:Array ( [0] => Array ( [term_title] => black, [color_quantity] => 2, [color_price] => 22 ) [1] => Array ( [term_title] => blue, [color_quantity] => 3, [color_price] => 33 ) )我嘗試以下代碼:$post = array();for($i = 0; $i < 2; $i++){    foreach($feild_data as $data){        $post[$i][$data['name']] = $data['value'];    }}但它重復最后一個索引兩次。IEArray ( [0] => Array ( [term_title] => blue, [color_quantity] => 3, [color_price] => 33 ) [1] => Array ( [term_title] => blue, [color_quantity] => 3, [color_price] => 33 ) )
查看完整描述

2 回答

?
慕桂英4014372

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,

? ),

)


查看完整回答
反對 回復 2023-04-21
?
陪伴而非守候

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);


查看完整回答
反對 回復 2023-04-21
  • 2 回答
  • 0 關注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號