【发布时间】:2012-03-27 01:34:59
【问题描述】:
很难处理多维数组。 我有一张电影表和这些电影的评分表。
我希望能够根据每个用户的评分为每个用户创建一个数组,例如 user1 看起来像 Array ( [1] => Array ( [1] => 5 ) [2] => Array ( [34] => 5 ) )。所以在第二个数组中,索引是电影ID,它们的值是电影评级。
我已经成功了,但是我需要查看用户是否没有对电影进行评分,如果是这种情况,则需要在数组中为该电影创建一个索引,值为 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";
}
}
}
这适用于数据库中的 ONE 用户,根据数据库中有多少电影创建 n 个数组键,评级为 0,但是一旦到达下一个用户,它就会停止。
【问题讨论】:
标签: php multidimensional-array