您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> PHP >> php数组排序问题

php数组排序问题

来源:网络整理     时间:2016/5/6 23:57:57     关键词:php数组

关于网友提出的“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

相关图片

相关文章