0
使用多維數組難度很大。 我有一張電影表和這些電影的收視率表。填充多維數組中的間隙
我希望能夠爲每個用戶根據他們的評級創建一個數組,例如user1看起來像Array ([1] => Array ([1] => 5) [2] => Array ([34] => 5))
。因此,在第二個數組中,索引是filmID,它們的值是電影評級。
我已經成功地做到了這一點,但是我需要看看用戶是否還沒有評級過電影,如果是這種情況,需要爲該電影創建索引,其值爲0.這就是所有的用戶評分數組都是相同的長度,然後可以通過函數運行來比較他們的評分相似程度。
$similarArray = array();
$films = mysql_query("SELECT * FROM films");
$users = mysql_query("SELECT * FROM user");
while ($userRow = mysql_fetch_assoc($users)) {
$similarCheck = mysql_query("SELECT * FROM ratings WHERE userID = ".$userRow['userID']);
while($row = mysql_fetch_assoc($similarCheck)) {
$similarArray[$userRow['userID']][$row['Film_ID']] = $row['rating'];
}
}
echo'<pre>'.print_r($similarArray).'</pre>';
這就是我如何創建多維數組,只是不確定如何「填補空白」。
感謝您收到我的任何幫助,如果您感到困惑或需要更多信息,請告訴我。
編輯
我剛剛寫了下面的代碼:
while ($userRow2 = mysql_fetch_assoc($user2)){
while ($filmRow2 = mysql_fetch_assoc($films2)){
if (array_key_exists ($filmRow2['Film_ID'], $similarArray[$userRow2['userID']])) {
echo "exists";
} else {
$similarArray[$userRow2['userID']][$filmRow2['Film_ID']] = "0";
}
}
}
這適用於一個用戶在數據庫的基礎上,有多少薄膜與評級0創建數組鍵的n個在數據庫中,但是一旦它到達下一個用戶就會停止。
'LEFT JOIN'是你需要的 – zerkms 2012-03-27 01:43:30