如何在 PHP 中按列值將關聯數組行分組?

Mary-Kate Olsen
發布: 2024-10-30 06:16:03
原創
502 人瀏覽過

How to Group Associative Array Rows by Column Value in PHP?

以列值將關聯數組行分組

在程式設計中,您可能會遇到需要重新組織儲存在關聯數組中的數據的情況。一個常見的任務是按特定列值對數組中的行進行分組,同時保留原始的第一級鍵。

考慮以下稱為 $old_arr 的關聯數組的關聯數組:

[
    'a' => ['id' => 20, 'name' => 'chimpanzee'],
    'b' => ['id' => 40, 'name' => 'meeting'],
    'c' => ['id' => 20, 'name' => 'dynasty'],
    'd' => ['id' => 50, 'name' => 'chocolate'],
    'e' => ['id' => 10, 'name' => 'bananas'],
    'f' => ['id' => 50, 'name' => 'fantasy'],
    'g' => ['id' => 50, 'name' => 'football']
]
登入後複製

目標是建立一個新數組 $arr,其中行根據 id 字段進行分組。產生的陣列應如下所示:

array
(
    10 => array
          (
            e => array ( id = 10, name = bananas )
          )
    20 => array
          (
            a => array ( id = 20, name = chimpanzee )
            c => array ( id = 20, name = dynasty )
          )
    40 => array
          (
            b => array ( id = 40, name = meeting )
          )
    50 => array
          (
            d => array ( id = 50, name = chocolate )
            f => array ( id = 50, name = fantasy )
            g => array ( id = 50, name = football )
          )
)
登入後複製

要實現此目的,您可以按照以下步驟操作:

  1. 初始化一個空數組 $arr。
  2. 迭代$old_arr 中的每一行。
  3. 使用 id 值作為 $arr 中的鍵。如果鍵不存在,則建立一個新數組。
  4. 將目前行賦值給$arr中對應的鍵。
  5. 對$arr陣列按SORT_NUMERIC排序,確保鍵在$arr中數字順序。

提供的 PHP 程式碼遵循此方法來產生所需的結果:

$arr = array();

foreach ($old_arr as $key => $item) {
   $arr[$item['id']][$key] = $item;
}

ksort($arr, SORT_NUMERIC);
登入後複製

以上是如何在 PHP 中按列值將關聯數組行分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!