多次元アレイでは苦労します。 私は映画のテーブルとこれらの映画の評価のテーブルを持っています。多次元アレイのギャップを充填する
各ユーザーのレーティングに基づいてアレイを作成できます。たとえば、user1はArray ([1] => Array ([1] => 5) [2] => Array ([34] => 5))
のようになります。したがって、2番目の配列では、インデックスはfilmIDであり、その値はフィルムのレーティングです。
私はこれを成功させましたが、ユーザーが映画を評価していないかどうかを確認する必要があります。この場合、配列内のこのフィルムのインデックスを作成する必要があります。これはすべてのユーザ格付け配列が同じ長さであるため、格付けの類似性を比較する関数を実行することができます。
$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>';
これは、多次元配列を作成する方法であり、「ギャップを埋める」方法はわかりません。
ご連絡いただきありがとうございました。ご不便をおかけいたしますが、ご不明な点がございましたら、お知らせください。
EDIT
私は、次のコードを書かれている:
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を作成し、データベース内ONEのユーザーのために働きますしかし、データベース内では、次のユーザーに到達すると停止します。
「LEFT JOIN」は必要なものです – zerkms