一個有一個array
這樣對於/的foreach循環停在第一conditoin永不恢復
Array
(
[0] => stdClass Object
(
[user_id] => 3035
[category] => Preliminary
[value] => 0
[fullname] =>
[studid] => 1202924
[remarks] =>
)
[1] => stdClass Object
(
[user_id] => 3035
[category] => Midterm
[value] => 0
[fullname] =>
[studid] => 1202924
[remarks] =>
)
[2] => stdClass Object
(
[user_id] => 3035
[category] => Semi-Finals
[value] => 0
[fullname] =>
[studid] => 1202924
[remarks] =>
)
[3] => stdClass Object
(
[user_id] => 3035
[category] => Finals
[value] => 0
[fullname] =>
[studid] => 1202924
[remarks] =>
)
[4] => stdClass Object
(
[user_id] => 3035
[category] => Remedial
[value] => 0
[fullname] =>
[studid] => 1202924
[remarks] =>
)
[5] => stdClass Object
(
[user_id] => 3036
[category] => Preliminary
[value] => 0
[fullname] =>
[studid] => 1202925
[remarks] =>
)
[6] => stdClass Object
(
[user_id] => 3036
[category] => Midterm
[value] => 0
[fullname] =>
[studid] => 1202925
[remarks] =>
)
[7] => stdClass Object
(
[user_id] => 3036
[category] => Semi-Finals
[value] => 0
[fullname] =>
[studid] => 1202925
[remarks] =>
)
[8] => stdClass Object
(
[user_id] => 3036
[category] => Finals
[value] => 0
[fullname] =>
[studid] => 1202925
[remarks] =>
)
[9] => stdClass Object
(
[user_id] => 3036
[category] => Remedial
[value] => 0
[fullname] =>
[studid] => 1202925
[remarks] =>
)
我想這樣
Array
(
[0] => Array
(
[fullname] =>
[studid] => 1202924
[user_id] => 3035
[Preliminary] => 0
[Midterm] => 0
[Semi-Finals] => 0
[Finals] => 0
[Remedial] => 0
),
[1] => array
(
[fullname] =>
[studid] => 1202925
[user_id] => 3036
[preliminary] => 0
[midterm] => 0
[semi-finals] => 0
[finals] => 0
[remedial] => 0
)
)
基本上是由他們的studid
或user_id
將它們分組進行格式化
現在我嘗試了很多嘗試,如
$count = 0;
$uid = $subject_student_grades[$count]->user_id;
for($x=0;$x < count($subject_student_grades);$x++)
{
if($uid == $subject_student_grades[$x]->user_id)
{
$test[$count]['fullname'] = $subject_student_grades[$x]->fullname;
$test[$count]['studid'] = $subject_student_grades[$x]->studid;
$test[$count]['user_id'] = $subject_student_grades[$x]->user_id;
$test[$count][$subject_student_grades[$x]->category] = $subject_student_grades[$x]->value;
}else{
$count++;
}
}
和
$計數= 0; 的foreach($ subject_student_grades爲$值) {
$uid = $subject_student_grades[$count]->user_id;
if($uid == $value->user_id)
{
$test[$count]['fullname'] = $value->fullname;
$test[$count]['studid'] = $value->studid;
$test[$count]['user_id'] = $value->user_id;
$test[$count][$value->category] = $value->value;
}else{
$count++;
}
}
但問題是,它循環只有第一部分中的一個與0
指數和條件後停止,不處理或循環上休息,請注意指出我做錯了什麼?
編輯 所以現在我編輯它,並放置在計數foreach loop
還在外面上第一array
我想是不是重啓條件後的同一只迭代?如果我刪除else{}
它會輸出一個不同於我所瞄準的最差的陣列結構。
我試圖echo
出的其他東西,它echo's
它,我覺得這裏的問題是,循環的條件去後,返回true並繼續到別處後,不會再回到if clause
。
你是偶然試圖擺脫'json_decode()'產生的對象嗎? – 2013-02-21 10:20:38
@ÁlvaroG.Vicario這是從數據庫返回的數據作爲對象 – tomexsans 2013-02-21 10:22:03
@tomexsans我認爲你應該重塑你的SQL查詢然後。更好的查詢意味着更少的代碼,更少的負載,更快的客戶,等等...... – ppeterka 2013-02-21 10:24:18