$size :2600
$userActive中有10000个元素,下面这段函数,进去就不出来了,郁闷啊,一个小时前还是好的,现在却死活执行不了了function useris($size,$userIn,$userActive) {
for($j=0;$j<$size;$j++) {
if(in_array($userIn[$j],$userActive)) {
$quanid=$userIn[$j]['quanid'];
                        isset($r[$quanid])?"":$r[$quanid]=array();
array_push($r[$quanid],"'".$userIn[$j]['userid']."'");  
}
}
return $r;
}

解决方案 »

  1.   


    function useris($size,$userIn,$userActive) {
        $r=array();
        for($j=0;$j<$size;$j++) {    
            if(in_array($userIn[$j],$userActive)) {    
                $quanid=$userIn[$j]['quanid'];
                !isset($r[$quanid]) && $r[$quanid]=array();
        $r[$quanid][]="'".$userIn[$j]['userid']."'";
            }
        }
        return $r;
    }
      

  2.   

    如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。 
      

  3.   

    !isset($r[$quanid]) && $r[$quanid]=array();
    这么写是什么意思?没看明白。
    我的需求是,如果$r[$quanid]不存在,就声明下$r[$quanid]=array();
      

  4.   

    !isset($r[$quanid]) && $r[$quanid]=array();
    就是你要的意思
      

  5.   

    没明白,解释下啊,
    这不等于(!isset($r[$quanid])&&$r[$quanid])=array()么?