これは、私があなたの場合にどのように行うのかについての簡単な草案です。
私はこれが最高だと言っているわけではなく、の唯一の方法はです。
この特定のテストは行われませんが、以前はそのロジックを使用していました。
これはここの論理に関するものですが、これはあなたが望むものを与えるはずです!
$applicants = array();
$old_applicant_id=null;
while ($row=$db->fetch()) {
// new applicant
if($row['applicant_id']!=$old_applicant_id) {
// save the education to the old one - if there is one
if(isset($applicant)) {
$applicant['education'] = $educations;
$applicants[] = $applicant;
}
// then (and in first round)
$applicant = array();
$applicant['fullName'] = $row['fullName'];
// repeat for other values of applicant
$educations = array(); // initialize educations
$education = array();
$education['id'] = $row['edu_id'];
// repeat for institute, etc
$educations[] = $education;
} else {
// already existing applicant, so only add education
$education = array();
$education['id'] = $row['edu_id'];
// repeat for institute, etc
$educations[] = $education;
}
// set old applicant
$old_applicant_id = $row['applicant_id'];
}
// finally you have to save the last one to the array
$applicant['education'] = $educations;
$applicants[] = $applicant;
別の方法として、2つの別々のクエリを2つのループでマージする方法があります。
This question of mineが関連していました。私は2つのバージョンのスペードについて質問していました。興味深いかもしれない。
興味深い質問です。私はあなたが2つの質問をしなければならないと信じています。 –
これはPHPで簡単です。申込者が変更するまで2つの配列を持ってから、教育機関の配列を申請者に保存してください。 (もちろん、応募者ごとにSQLでソートする必要があります) – Jeff