关于网友提出的“php数组排序问题”问题疑问,本网通过在网上对“php数组排序问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:php数组排序问题
描述:
刚刚发了一个关于这个的问题,愚蠢如我,将答案运用到我的程序里的时候,会报错,不知道该怎么修改了。真诚求教。
相关的代码如下:
//计算用户的平均打分
$sum=0;
$count=0;
for($i=0;$i<$rm;$i++){
$sum=$sum+$rp[$i][2];
$count=$count+1;
}
$user_avgr=$sum/$count;
//用来记录预测结果
$overcome=array();
$overcome=array();
$number=0;
//计算用户的预测得分
for($i=0;$i<$rm;$i++){
//项目评分不为0
if($rp[$i][2]!=0){
$bn=$rp[$i][1];
$result = mysqli_query($con,"SELECT bt.index FROM bt WHERE ISBN='$bn'");
$rr = $result->fetch_array();
$r=$rr[0]-1;
$sumsim=0;
$sumrat=0;
//固定行
for($j=0;$j<$numb;$j++){
if($sim[$r][$j]!=0){
$sumsim=$sumsim+$sim[$r][$j];
$sumrat=$sumrat+$sim[$r][$j]*($rp[$i][2]-$user_avgr);
//固定列
for($k=0;$k<$numb;$k++){
if($sim[$k][$j]!=$sim[$r][$j]&&$sim[$k][$j]!=0){
$sumsim=$sumsim+$sim[$k][$j];
//寻找$sim[$k][$j]项对应的评分,也就是说index=k+1项目的评分
$find = mysqli_query($con,"SELECT bt.ISBN FROM bt WHERE bt.index=$k+1");
$find1=$find->fetch_array();
$findI=$find1[0];
$seed = mysqli_query($con,"SELECT * FROM rt WHERE rt.ISBN='$findI'");
$seed1=$seed->fetch_array();
$seedrating=$seed1[2];
$sumrat=$sumrat+$sim[$k][$j]*($seedrating-$user_avgr);
}
}
//寻找$sim[$k][$j]项对应的ISBN,也就是说index=j+1项目的ISBN
$find = mysqli_query($con,"SELECT bt.ISBN FROM bt WHERE bt.index=$j+1");
$find1=$find->fetch_array();
$findI=$find1[0];
//计算此用户此项目的预测的分
$pre=$user_avgr+($sumrat/$sumsim);
//加入结果集
$flag=0;
for($n=0;$n<$number;$n++){
if($findI==$overcome[$n][0]){
$flag=1;
break;
}
}
//预测得分大于六且不重复的项目加入结果集
if(($flag==0)&&($pre>=6)){
$overcome[$number][0]=$findI;
$overcome[$number][1]=$pre;
$number=$number+1;
}
}
}
}
}
mysqli_close($con);
foreach($overcome as $v) $r[] = $v[1];
array_multisort($r, SORT_DESC, $overcome);
for($i=0;$i<$number;$i++){
echo $overcome[$i][0];
echo "and";
echo $overcome[$i][1];
echo "
";
运行警告如下,且并没有对我的overcome数组排序:
Warning: Cannot use a scalar value as an array in E:\XAMPP\htdocs\system\recommend\predict.php on line 106
Warning: Cannot use a scalar value as an array in E:\XAMPP\htdocs\system\recommend\predict.php on line 106
Warning: Cannot use a scalar value as an array in E:\XAMPP\htdocs\system\recommend\predict.php on line 106
Warning: array_multisort(): Argument #1 is an unknown sort flag in E:\XAMPP\htdocs\system\recommend\predict.php on line 107
3499230933and9.25
3596151465and9.25
553572369and10
解决方案1:
你之前有 $r 这个变量吧?
换个变量名
以上介绍了“php数组排序问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/948508.html