列の値による連想配列の行のグループ化
連想配列の連想配列が与えられた場合、一般的なタスクは、それらを特定の列でグループ化することです。元の第 1 レベルのキーを維持しながら値を変更します。次の入力配列を考えてみましょう:
[ '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'] ]
私たちの目標は、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 ) ) )
PHP を使用してこれを実現するには、次のコードを利用できます。
$arr = array(); foreach ($old_arr as $key => $item) { $arr[$item['id']][$key] = $item; } ksort($arr, SORT_NUMERIC);
このコードは、まず元の配列を反復処理し、ID と対応するサブ配列を抽出します。次に、このサブ配列を id キーの下の新しい配列に格納し、元の第 1 レベルのキーを保持します。最後に、新しい配列を ID で数値的に並べ替えます。
以上が元の第 1 レベルのキーを保持しながら、PHP で特定の列値によって連想配列の行をグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。