Array
(
    [0] => Array
        (
            [mt_id] => 7
            [user_id] => 5553
        )    [1] => Array
        (
            [mt_id] => 6
            [user_id] => 5553
        )    [2] => Array
        (
            [mt_id] => 3
            [user_id] => 5555
        )    [3] => Array
        (
            [mt_id] => 2
            [user_id] => 5556
        )    [4] => Array
        (
            [mt_id] => 1
            [user_id] => 5559
        ))
去掉user_id重复的值

解决方案 »

  1.   

    你这个去掉 没有说清楚..是去掉. 整个 key 还是 只去掉K里面的 .[user_id] => 5553区别很大的
      

  2.   

    恩 是的。是unset(user_id)还是。
      

  3.   


    $a = array(
    0 => array('mt_id' => 7, 'user_id' => 5553),
    1 => array('mt_id' => 6, 'user_id' => 5553),
    2 => array('mt_id' => 3, 'user_id' => 5555),
    3 => array('mt_id' => 2, 'user_id' => 5556),
    4 => array('mt_id' => 1, 'user_id' => 5559)
    );
    $b = array();
    foreach($a as $k => $v){
    $b[$v['user_id']] = $v;
    }
    echo '<pre>';print_r(array_values($b));/*
    Array
    (
        [0] => Array
            (
                [mt_id] => 6
                [user_id] => 5553
            )    [1] => Array
            (
                [mt_id] => 3
                [user_id] => 5555
            )    [2] => Array
            (
                [mt_id] => 2
                [user_id] => 5556
            )    [3] => Array
            (
                [mt_id] => 1
                [user_id] => 5559
            ))
    */
      

  4.   


    $arr=array ( 
     array ( 'mt_id' => 7 ,'user_id' => 5553 ), 
     array ( 'mt_id' => 6 ,'user_id' => 5553 ) ,
     array ( 'mt_id' => 3, 'user_id' => 5555 ) ,
     array ( 'mt_id' => 2 ,'user_id' => 5556 ) ,
     array ( 'mt_id' => 1, 'user_id' => 5559 ) 
    ) ;
    $ar=array();
    $tem=array();
    foreach($arr as $v){
        if(!isset($tem[$v['user_id']])){
        $tem[$v['user_id']]=$v;
        $ar[]=$v;
         }
    }
    print_r($ar);Array
    (
        [0] => Array
            (
                [mt_id] => 7
                [user_id] => 5553
            )    [1] => Array
            (
                [mt_id] => 3
                [user_id] => 5555
            )    [2] => Array
            (
                [mt_id] => 2
                [user_id] => 5556
            )    [3] => Array
            (
                [mt_id] => 1
                [user_id] => 5559
            ))
      

  5.   

    这样页面运行时间太长 $end_arr =array();
    do{
    $new_user = array_rand($res_user,$win_count - count($end_arr));
    array_push($end_arr,$new_user); /* 去除重复值 */
    $ar=array();
    $tem=array();
    foreach($end_arr as $v){
        if(!isset($tem[$v['user_id']])){
            $tem[$v['user_id']]=$v;
            $ar[]=$v;
         }
    }
    $end_arr = $ar;
    }while ($win_count - count($end_arr));
      

  6.   

    这样运行时间太长啊              $end_arr =array();
                    do{
                        $new_user = array_rand($res_user,$win_count - count($end_arr));
                        array_push($end_arr,$new_user);                    /* 去除重复值 */
                        $ar=array();
                        $tem=array();
                        foreach($end_arr as $v){
                            if(!isset($tem[$v['user_id']])){
                                $tem[$v['user_id']]=$v;
                                $ar[]=$v;
                             }
                        }
                        $end_arr = $ar;
                    }while ($win_count - count($end_arr));
      

  7.   

    这样运行超时了              $end_arr =array();
                    do{
                        $new_user = array_rand($res_user,$win_count - count($end_arr));
                        array_push($end_arr,$new_user);                    /* 去除重复值 */
                        $ar=array();
                        $tem=array();
                        foreach($end_arr as $v){
                            if(!isset($tem[$v['user_id']])){
                                $tem[$v['user_id']]=$v;
                                $ar[]=$v;
                             }
                        }
                        $end_arr = $ar;
                    }while ($win_count - count($end_arr));
      

  8.   


        }while ($win_count - count($end_arr));改成
        }while ($win_count - 3);
    之后正常
      

  9.   

    承认之前有问题,改成这样还是不行$end_arr =array();
                    do{
                        $new_user = array_rand($res_user,$win_count - count($end_arr));
                         
                        foreach($new_user as $v)){
                           $mid_arr[] = $new_user[$v];
                        }
                        array_push($end_arr,$mid_arr);                    /* 去除重复值 */
                        $ar=array();
                        $tem=array();
                        foreach($end_arr as $v){
                            if(!isset($tem[$v['user_id']])){
                                $tem[$v['user_id']]=$v;
                                $ar[]=$v;
                             }
                        }
                        $end_arr = $ar;
                    }while ($win_count - count($end_arr));
      

  10.   

    至少需要这样写$res_user = array ( 
     array ( 'mt_id' => 7 ,'user_id' => 5553 ), 
     array ( 'mt_id' => 6 ,'user_id' => 5553 ) ,
     array ( 'mt_id' => 3, 'user_id' => 5555 ) ,
     array ( 'mt_id' => 2 ,'user_id' => 5556 ) ,
     array ( 'mt_id' => 1, 'user_id' => 5559 ) 
    ) ;$win_count = 3;
    $end_arr =array();
    do{
      $new_user = array_rand($res_user,$win_count - count($end_arr) || 1);
          
      if(! is_array($new_user)) $new_user = array($new_user);
      foreach($new_user as $k) $end_arr[] = $res_user[$k];  /* 去除重复值 */
      $ar=array();
      $tem=array();
      foreach($end_arr as $v){
        if(!isset($tem[$v['user_id']])){
          $tem[$v['user_id']]=$v;
          $ar[]=$v;
        }
      }
      $end_arr = $ar;
    }while ($win_count - count($end_arr));
      

  11.   

    >> array_push($end_arr,$mid_arr);楼主看来对函数都不够熟
      

  12.   


    $data=array ( 
     array ( 'mt_id' => 7 ,'user_id' => 5553 ), 
     array ( 'mt_id' => 6 ,'user_id' => 5553 ) ,
     array ( 'mt_id' => 3, 'user_id' => 5555 ) ,
     array ( 'mt_id' => 2 ,'user_id' => 5556 ) ,
     array ( 'mt_id' => 1, 'user_id' => 5559 ) 
    ) ;$tmp=array();
    foreach($data as $k => $v){
      if(in_array($tmp,$v['user_id'])){
        unset($data[$k]);
      }else{
        $tmp[]=$v;
      }
    }
    print_r($data);
      

  13.   


      if(! is_array($new_user)) $new_user = array($new_user);看来这个判断至关重要,结贴