Трудное время с многомерными массивами.У меня есть таблица фильмов и таблица оценок для этих фильмов.
Я хочу иметь возможность создавать массив для каждого пользователя на основе их оценок, например, user1 будет выглядеть как Array ( [1] => Array ( [1] => 5 ) [2] => Array ( [34] => 5 ) )
.Таким образом, во втором массиве индексы - это filmID, а их значения - рейтинги фильмов.
Мне удалось это сделать, однако мне нужно посмотреть, не оценил ли пользователь фильм, и если это так, необходимо создать индекс для этого фильма в массиве сзначение 0. Это значит, что все пользовательские рейтинговые массивы имеют одинаковую длину, и их можно запустить через функцию, чтобы сравнить, насколько похожи их рейтинги.
<code>$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).'
';
Именно так я создаю многомерные массивы, просто не зная, как «заполнить пробелы».
Спасибо за любую помощь, которую я получаю, и если вы не уверены или вам нужна дополнительная информация, просто дайте мне знать.
РЕДАКТИРОВАТЬ
Я только что написалследующий код:
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";
}
}
}
Это работает для ОДНОГО пользователя в базе данных, создавая n чисел ключей массива с рейтингом 0, основанным на количестве фильмов в базе данных, однако останавливается, когда добирается доследующий пользователь.