Home >Backend Development >PHP Tutorial >回到两个数组的交集

回到两个数组的交集

WBOY
WBOYOriginal
2016-06-13 10:53:09824browse

返回两个数组的交集
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>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn