たとえば、下記ようなレコードセットをデータベースから取って来て、
企業の一覧と企業に紐づく社員を2名まで表示するような画面を表示したいと思います
社員ID(person_id), 企業ID(company_id), 社員名(person_name), 企業名(company_name), 1, 2, 田中太郎, 山田商事 2, 2, .... 3, 2, .... 4, 2, .... 5, 3, .... 6, 3, .... 7, 4, .... 8, 5, .... 9, 5, .... 10,5, .... そんなとき自分はPHPで下記のようなコードをよく書いたりするのですが、
PHP
1$data = []; // 最終的にテンプレートに渡すデータソース 2$count = 0; 3$old_company_id = $old_company_name = $person1 = $person2 = null; 4while ( $row = $recordset->fetch() ) { 5 if (!is_null($old_company_id) && $old_company_id != $row['company_id'] ) { 6 $data[$old_company_id]['person1'] = $person1; 7 $data[$old_company_id]['person2'] = $person2; 8 $data[$old_company_id]['company_name'] = $old_company_name; 9 $old_company_name = $person1 = $person2 = null; 10 $count = 0; 11 } 12 13 if ($count == 0) { 14 $person1 = $row['person_name']; 15 } else if ( $count == 1 ) { 16 $person2 = $row['person_name']; 17 } 18 19 $old_company_id = $row['company_id']; 20 $old_company_name = $row['company_name']; 21 $count++; 22} 23if (!is_null($person1)) { // 残り 24 $data[$old_company_id]['person1'] = $person1; 25 $data[$old_company_id]['person2'] = $person2; 26 $data[$old_company_id]['company_name'] = $old_company_name; 27} 28
こういうのをたくさん書いてるのですが、もうちょっと簡潔な書き方はあるでしょうか
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/02 08:04
2016/11/02 08:11
2016/11/02 08:20
2016/11/02 08:24