前提・実現したいこと
元の連想配列($rows)があります
これを「site」と「drink」に応じて分けて、
目的の連想配列($result)を作りたいです
ただし「site」と「drink」は膨大な種類があります
元の連想配列($rows)
php
1$rows = [ 2 ['id'=>1, 'name'=>'いち', 'site'=>'yahoo', 'drink'=>'beer'], 3 ['id'=>2, 'name'=>'にい', 'site'=>'apple', 'drink'=>'wine'], 4 ['id'=>3, 'name'=>'さん', 'site'=>'yahoo', 'drink'=>'beer'], 5 ['id'=>4, 'name'=>'よん', 'site'=>'yahoo', 'drink'=>'beer'], 6 ['id'=>5, 'name'=>'ごお', 'site'=>'apple', 'drink'=>'soda'], 7 ['id'=>6, 'name'=>'ろく', 'site'=>'apple', 'drink'=>'wine'] 8];
###目的の連想配列($result)
php
1$result = [ 2 'search_menu_yahoo_beers' => [ 3 'print_area' => 'search_menu_yahoo_beers', 4 'process' => 'search', 5 'datas' => [ 6 ['id'=>1, 'name'=>'いち', 'site'=>'yahoo', 'drink'=>'beer'], 7 ['id'=>3, 'name'=>'さん', 'site'=>'yahoo', 'drink'=>'beer'], 8 ['id'=>4, 'name'=>'よん', 'site'=>'yahoo', 'drink'=>'beer'] 9 ] 10 ], 11 'search_menu_apple_wines' => [ 12 'print_area' => 'search_menu_apple_wines', 13 'process' => 'search', 14 'datas' => [ 15 ['id'=>2, 'name'=>'にい', 'site'=>'apple', 'drink'=>'wine'], 16 ['id'=>6, 'name'=>'ろく', 'site'=>'apple', 'drink'=>'wine'] 17 ] 18 ], 19 'search_menu_apple_sodas' => [ 20 'print_area' => 'search_menu_apple_sodas', 21 'process' => 'search', 22 'datas' => [ 23 ['id'=>5, 'name'=>'ごお', 'site'=>'apple', 'drink'=>'soda'] 24 ] 25 ] 26]; 27
試したこと
$result = []; foreach ( $rows as $row ) { $print_area = 'search_menu_' . $row['site'] . '_' . $row['drink'] . 's'; $result[$print_area] = [ 'print_area' => $print_area ,'process' => $process ,'datas' => $rows ]; } var_export($result);
$result = []; foreach ( $rows as $row ) { $print_area = 'search_menu_' . $row['site'] . '_' . $row['drink'] . 's'; $result[$print_area][] = [ 'print_area' => $print_area ,'process' => $process ]; $result[$print_area]['datas'][] = $row; } var_export($result);
など…こねくり回していますができません
php入門1ヵ月目の初心者になります
宜しくお願い致します
補足情報(FW/ツールのバージョンなど)
php7.3
「やったけどできません」ではなく「やってみた結果何が起きているか」を記載してください。
※質問は編集できます
回答2件
あなたの回答
tips
プレビュー