2 つの配列の積部分を返します

WBOY
リリース: 2016-06-13 13:05:56
オリジナル
832 人が閲覧しました

2 つの配列の交差を返します
A 配列

PHP コード
<!--

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 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 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 コード
$a = 配列(
  0 => 配列('アクションID' => 3)、
  1 => 配列('アクションID' => 2)、
  2 => 配列('アクションID' => 1)、
  3 => 配列('アクションID' => 7)、
  4 => 配列('アクションID' => 11)、
);

$b = 配列(
  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>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート