首页 >后端开发 >php教程 >回到两个数组的交集

回到两个数组的交集

WBOY
WBOY原创
2016-06-13 10:53:09826浏览

返回两个数组的交集
A数组

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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);<div class="clear">
                 
              
              
        
            </div>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn