以一列將子數組分組,並從組內的另一列建立逗號分隔值
在PHP 中,根據一列對子數組進行分組,連接這些組中另一列的值帶來了獨特的挑戰。為了解決這個問題,我們提供了一個詳細的解決方案,將給定的陣列轉換為所需的結構化格式。
提供的範例陣列由每個包含兩個元素的子陣列組成。目標是根據第二個元素(稱為「列」)對子數組進行分組,並建立一個新數組,其中每個元素代表一個群組。在每個組元素中,第一個元素應該是分組子數組中第一個元素的逗號分隔列表,而第二個元素表示公共列。
為了實現這一點,我們使用逐步-步驟方法:
-
循環原始數組:首先迭代原始數組中的每個子數組。
-
檢查組鍵:對於每個子數組,檢查第二個元素(組鍵)是否存在於名為 $groups 的新數組中。如果沒有,則為該組鍵初始化一個空數組。
-
將子數組加到組:一旦組鍵存在,將當前子數組的第一個元素加到對應的組數組中。
-
建立結構化陣列:處理完原始陣列後,循環遍歷$groups陣列。對於每個組,使用逗號連接其第一個元素的值並將它們儲存在一個新數組中。將其與組鍵結合起來以建立所需的結構。
下面提供的PHP 腳本演示了這種方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <code class = "php" >
$data = array (
array ( '444' , '0081' ),
array ( '449' , '0081' ),
array ( '451' , '0081' ),
array ( '455' , '2100' ),
array ( '469' , '2100' )
);
$groups = array ();
foreach ( $data as $item ) {
$key = $item [1];
if (! array_key_exists ( $key , $groups )) {
$groups [ $key ] = array ();
}
$groups [ $key ][] = $item [0];
}
$structured = array ();
foreach ( $groups as $group => $values ) {
$structured [] = array (implode( ',' , $values ), $group );
}
print_r( $structured );</code>
|
登入後複製
此腳本有效地將輸入數組轉換為新數組具有指定的結構,其中子數組基於公共列進行分組,分組子數組的第一個元素以逗號連接。
以上是如何根據一列對 PHP 中的子數組進行分組,並從這些組中的另一列建立逗號分隔值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!