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

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

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

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 腳本演示了這種方法:

<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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板