当前位置: 代码迷 >> PHP >> 回到两个数组的交集
  详细解决方案

回到两个数组的交集

热度:94   发布时间:2016-04-28 23:23:52.0
返回两个数组的交集
A数组
PHP code
array(    [0] =>        array(        ['action_id'] =>        3        )    [1] =>        array(        ['action_id'] =>        2    )    [2] =>        array(        ['action_id'] =>        1    )    [3] =>        array(        ['action_id'] =>        7    )    [4] =>        array(        ['action_id'] =>        11    ))

B数组:
PHP code
array(    [0] =>    array(    ['action_id'] =>    3        ['type'] =>        0        ['order_num'] =>        67    )    [1] =>    array(    ['action_id'] =>    2        ['type'] =>        0        ['order_num'] =>        66    )    [2] =>    array(    ['action_id'] =>    1        ['type'] =>        0        ['order_num'] =>        65    )    [3] =>    array(    ['action_id'] =>    7        ['type'] =>        0        ['order_num'] =>        64        )    [8] =>    array(    ['action_id'] =>    14        ['type'] =>        0        ['order_num'] =>        40        )    [13] =>    array(    ['action_id'] =>    11        ['type'] =>        0        ['order_num'] =>        30    ))

使用array_intersect_key返回的为什么是
PHP code
array(    [0] =>    array(    ['action_id'] =>    3        ['type'] =>        0        ['order_num'] =>        67    )    [1] =>    array(    ['action_id'] =>    2        ['type'] =>        0        ['order_num'] =>        66    )    [2] =>    array(    ['action_id'] =>    1        ['type'] =>        0        ['order_num'] =>        65    )    [3] =>    array(    ['action_id'] =>    7        ['type'] =>        0        ['order_num'] =>        64        )    )

action_id为11的为什么没了??

------解决方案--------------------
PHP code
$a = array(  0 => array('action_id' => 3),  1 => array('action_id' => 2),  2 => array('action_id' => 1),  3 => array('action_id' => 7),  4 => array('action_id' => 11),);$b = array(  0 => array('action_id' => 3, 'type' => 0, 'order_num' => 67),  1 => array('action_id' => 2, 'type' => 0, 'order_num' => 66),  2 => array('action_id' => 1, 'type' => 0, 'order_num' => 65),  3 => array('action_id' => 7, 'type' => 0, 'order_num' => 64),  8 => array('action_id' => 14, 'type' => 0, 'order_num' => 40),  13 => array('action_id' => 11, 'type' => 0, 'order_num' => 30),);foreach($a as $v) $dict[] = $v['action_id'];foreach($b as $k=>$v) if(in_array($v['action_id'], $dict)) $c[$k] = $v;print_r($c);
  相关解决方案