Array
(
    [0] => Array
        (
            [goods_id] => 90
            [suppliers_ids] => Array
                (
                    [0] => 2
                    [1] => 3
                    [2] => 6
                )        )    [1] => Array
        (
            [goods_id] => 305
            [suppliers_ids] => Array
                (
                    [0] => 2
                    [1] => 3
                    [2] => 6
                    [3] => 1
                )        )    [2] => Array
        (
            [goods_id] => 333
            [suppliers_ids] => Array
                (
                    [0] => 2
                    [1] => 3
                    [2] => 6
                    [3] => 5
                )        ))
请问 怎么把 suppliers_ids 数组中的交集罗列出来啊 ,谢谢!!!

解决方案 »

  1.   

    排序,然后A数组的第一个开始,和B数组的第一个比较。
    大于B数组的第一个值,则和B数组的下一个比较;
    小于B数组的值,则拿A数组的下一个比较;
    如果相等就是交集,A、B两个数组都用下一个值比较。
      

  2.   

    php 提供了 array_intersect 函数,为何不用?
      

  3.   

    我在你的另一个帖子里不是已经回复了吗?设数组为 $ar,则有
    foreach($ar as $v) $t[] = $v['suppliers_ids'];
    print_r(call_user_func_array('array_intersect', $t));Array
      (
      [0] => 2
      [1] => 3
      [2] => 6
      )