代码之家  ›  专栏  ›  技术社区  ›  Lemon Kazi

从父数组获取重复值,而不是从父数组获取重复值

  •  -1
  • Lemon Kazi  · 技术社区  · 6 年前

    公共阵列

    $a = array([0]=> Array
        (
            [id] => 22429
            [user_id] => 0
            [shop_id] => 78
            [start_date] =>
            [fn_point] => 0
        ),[1]=> Array
        (
            [id] => 22430
            [user_id] => 0
            [shop_id] => 78
            [start_date] =>
            [fn_point] => 0
        ),[2]=> => Array
        (
            [id] => 22431
            [user_id] => 0
            [shop_id] => 78
            [start_date] =>
            [fn_point] => 0
        ),[3] => Array
        (
            [id] => 22432
            [user_id] => 0
            [shop_id] => 78
            [start_date] =>
            [fn_point] => 0
        ));
    
    $b = array("0"=> Array
        (
            [id] => 22428
            [user_id] => 0
            [shop_id] => 78
            [start_date] =>
            [fn_point] => 0
        ),"1" => Array
        (
            [id] => 22430
            [user_id] => 0
            [shop_id] => 78
            [start_date] =>
            [fn_point] => 0
        ),[2]=> Array
        (
            [id] => 22431
            [user_id] => 0
            [shop_id] => 78
            [start_date] =>
            [fn_point] => 0
        ),[3] => Array
        (
            [id] => 22432
            [user_id] => 0
            [shop_id] => 78
            [start_date] =>
            [fn_point] => 0
        ));;
    

    唯一数组的输出将是

    $c = array(
            [0]=> Array
            (
                [id] => 22429
                [user_id] => 0
                [shop_id] => 78
                [start_date] =>
                [fn_point] => 0
            )
        );
    

    公共数组的输出将是

    $u = array(
            [0]=> Array
            (
                [id] => 22430
                [user_id] => 0
                [shop_id] => 78
                [start_date] =>
                [fn_point] => 0
            ),[1]=> Array
            (
                [id] => 22431
                [user_id] => 0
                [shop_id] => 78
                [start_date] =>
                [fn_point] => 0
            ),[2]=> Array
            (
                [id] => 22432
                [user_id] => 0
                [shop_id] => 78
                [start_date] =>
                [fn_point] => 0
            )
        );
    
    3 回复  |  直到 6 年前
        1
  •  1
  •   Death-is-the-real-truth    6 年前

    array_intersect()

    $c = array_values(array_intersect($a,$b)); //array_values() used for re-indexing final array
    print_r($c);
    

    输出:- https://eval.in/1055829

    使用 array_diff()

    $c = array_values(array_diff($a,$b));//array_values() used for re-indexing final array
    print_r($c);
    

    https://eval.in/1055830

    参考文献:-

    array_values()

    为您编辑的问题 应用 foreach() 随着 in_array() array_column()

    $final_array = [];
    
    foreach($a as $key=>$val){
      if(in_array($val['id'],array_column($b,'id'))){
        $final_array[] = $val;
      }
    
    }
    
    print_r($final_array); // common values array 
    

    输出:- https://eval.in/1055838

    $final_array = [];
    
    foreach($a as $key=>$val){
      if(!in_array($val['id'],array_column($b,'id'))){
        $final_array[] = $val;
      }
    
    }
    
    print_r($final_array); // non common value array
    

    输出:- https://eval.in/1055839

        2
  •  1
  •   Nomad Webcode    6 年前

    对于您的常用阵列:

    array_intersect($a, $b);
    

    array_unique(array_merge($a, $b), SORT_REGULAR);
    
        3
  •  1
  •   Andreas    6 年前

    Array_intersect array_diff

    $a = array('1','2','3','4');
    $b = array('4','5','6','7');
    
    $c = array_intersect($a, $b);
    var_dump($c); //4
    
    $d = array_diff($a,$b);
    var_dump($d); //1,2,3
    

    https://3v4l.org/Ut8JW