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
)
)使用array_intersect_key返回的为什么是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的为什么没了??

解决方案 »

  1.   

    array_intersect_key -- 使用键名比较计算数组的交集A数组的键是: 0,1,2,3,4
    B数组的键是: 0,1,2,3,8,13
    所以结果数组所谓键是: 0,1,2,3
      

  2.   

    额。返回一个全新的数组。以数组B为蓝本。要求是B中的action_id必须在A数组中出现
      

  3.   

    $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);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
            )    [13] => Array
            (
                [action_id] => 11
                [type] => 0
                [order_num] => 30
            ))
      

  4.   

    先把数组a的action_id全部放进一个一位数组或者拼成字符串
    然后再循环数组b去判断action_id是否有
    再做相应操作