php问题来帮忙

$a=array (

   '14' => array ( 'ok' => 1 ,'err' => 1 ), 
   '15' => array ( 'ok' => 1 ,'err' => 0 ), 
   );

function ok_err_errate($errrate,$a){

   $arr_id=array(); 
   foreach ($a as $k=>$values) {
           foreach ($values as $data1) {
               if($data1['err']/($data1['ok']+$data1['err'])*100>=$errrate){
              $arr_id[]=$k;
          }
           }

   }
    return $arr_id;
}
$b =ok_err_errate(50,$a);
print_r($b);
exit;

为什么输出的是空数组?请帮忙改改
阅读 2.3k
3 个回答

$data1['err']/($data1['ok']+$data1['err'])*100你算算是多少
然后针对谁先谁后,加个括号吧
($data1['err']/($data1['ok']+$data1['err']))*100
$data1['err']/(($data1['ok']+$data1['err'])*100)
两个选一个

if条件不满足

你多了一层 foreach 循环

   foreach ($a as $k=>$data1)
    {       
               if($data1['err']/($data1['ok']+$data1['err'])*100>=$errrate)
               {
                      $arr_id[]=$k;
               }
   }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题