我有這個數組,我從數據庫中檢索數據,並把它放在一個數組:如何迭代多維數組並計算php中每行的總和?
$query = "select * from caseunder";
$result=mysql_query($query) or die('Error, insert query failed');
$array[] = array();
$numrows=mysql_num_rows($result);
WHILE ($i < $numrows){
$allergies =mysql_result($result, $i, "allergies");
$vege = mysql_result($result,$i, "vege");
$age = mysql_result($result, $i, "age");
$bmi =mysql_result($result, $i, "bmi");
$solution = mysql_result($result,$i, "solution");
$bmi2 = $_POST['weight']/(($_POST['height']/100)*($_POST['height']/100));
if($_POST['age']>18 && $_POST['age']<35)
$age2 = 'young ';
if($_POST['age']>40 && $_POST['age']<50)
$age2 = 'middle age ';
if($_POST['age']>60)
$age2 = 'old men ';
$array[] = array('age'=>$age2,'allergies'=>$allergies,'vege'=>$vege,'bmi'=>$bmi2,'solution'=>$solution);
i++
}
的話,我想那陣列輸入我輸入的每個元素比較和計算總和陣列的每行:
foreach($array as $cases) {
if($cases['allergies'] == $_POST['allergies']){
$count = 1;
}
if($cases['vege'] == $_POST['vege']){
$count1 = 1;
}
if($cases['bmi'] == $bmi2)
$count2 = 1;
if($cases['age'] == $age2)
$count3 = 1;
$sum = $count + $count1 + $count2 + $count3;
echo $sum;
}
可以說,我已經進入了年齡,體重指數,過敏和蔬這是所有像數據庫的第一行中,總和應該是輸出爲4,因爲4相同的數據進行比較一樣。在這種情況下,我嘗試,數據庫的每一行應該有不同的總和,因爲它不是所有的same.But我沒有得到我想要的輸出,這是錯誤的輸出的例子:
0
4
4
4
4
4
4
4
4
(假設我的phpmyadmin中有8行數據庫) 數據庫的第一行經過手動比較後,總和爲4,但它似乎繼續循環下一行時採用與prev行相同的數量。
實際上,您是如何縮減代碼的,或者是格式化程序出了什麼問題? – GolezTrol
是的。它出什麼問題了? @GolezTrol – Hazira
你需要清理你的代碼。我可以看到兩個未定義的變量。 $ age2和$ bmi2。並且WHILE循環中的計數器不會增加,WHILE循環也不會關閉。 – BigScar