首頁 > 後端開發 > php教程 > 如何根據一列對 PHP 中的子數組進行分組,並從這些組中的另一列建立逗號分隔值?

如何根據一列對 PHP 中的子數組進行分組,並從這些組中的另一列建立逗號分隔值?

Mary-Kate Olsen
發布: 2024-11-02 15:54:29
原創
566 人瀏覽過

How can you group subarrays in PHP based on one column and create comma-separated values from another column within those groups?

以一列將子數組分組,並從組內的另一列建立逗號分隔值

在PHP 中,根據一列對子數組進行分組,連接這些組中另一列的值帶來了獨特的挑戰。為了解決這個問題,我們提供了一個詳細的解決方案,將給定的陣列轉換為所需的結構化格式。

提供的範例陣列由每個包含兩個元素的子陣列組成。目標是根據第二個元素(稱為「列」)對子數組進行分組,並建立一個新數組,其中每個元素代表一個群組。在每個組元素中,第一個元素應該是分組子數組中第一個元素的逗號分隔列表,而第二個元素表示公共列。

為了實現這一點,我們使用逐步-步驟方法:

  1. 循環原始數組:首先迭代原始數組中的每個子數組。
  2. 檢查組鍵:對於每個子數組,檢查第二個元素(組鍵)是否存在於名為 $groups 的新數組中。如果沒有,則為該組鍵初始化一個空數組。
  3. 將子數組加到組:一旦組鍵存在,將當前子數組的第一個元素加到對應的組數組中。
  4. 建立結構化陣列:處理完原始陣列後,循環遍歷$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">// Create the input array

$data = array(

    array('444', '0081'),

    array('449', '0081'),

    array('451', '0081'),

    array('455', '2100'),

    array('469', '2100')

);

 

// Initialize the groups array

$groups = array();

 

// Loop through the original array

foreach ($data as $item) {

    $key = $item[1];  // Get the group key

 

    // Check if the group key exists

    if (!array_key_exists($key, $groups)) {

        $groups[$key] = array();

    }

 

    // Add the subarray to the group

    $groups[$key][] = $item[0];

}

 

// Create the structured array

$structured = array();

foreach ($groups as $group => $values) {

    $structured[] = array(implode(',', $values), $group);

}

 

// Display the output

print_r($structured);</code>

登入後複製

此腳本有效地將輸入數組轉換為新數組具有指定的結構,其中子數組基於公共列進行分組,分組子數組的第一個元素以逗號連接。

以上是如何根據一列對 PHP 中的子數組進行分組,並從這些組中的另一列建立逗號分隔值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板