比较两个多维数组

时间:2014-05-29 13:17:08

标签: php arrays

我有两个具有相同权重的阵列$data_old& $data_new:  数组$data_old

Array
(
[1] => Array
    (
        [Position] => 1
        [Moteur] => google.com
        [Mot Clé] => Lorem ipsum dolor sit amet 24
        [Site] => http://www.test.com
        [Page positionnée] => no result
        [Titre de la page] => 
        [Date] => 20/01/2014
    )

[2] => Array
    (
        [Position] => 1
        [Moteur] => Bing.com 
        [Mot Clé] => Lorem ipsum dolor sit amet 33
        [Site] => http://www.test.com
        [Page positionnée] => no result
        [Titre de la page] => 
        [Date] => 20/01/2014
    )

[3] => Array
    (
        [Position] => 1
        [Moteur] => Bing.com France - (Tout afficher)
        [Mot Clé] => Lorem ipsum dolor sit amet 50
        [Site] => http://www.test.com
        [Page positionnée] => no result
        [Titre de la page] => 
        [Date] => 20/01/2014
    ) 

依旧......数组$data_new

 Array
 (
[1] => Array
    (
        [Position] => 0
        [Moteur] => Bing.com
        [Mot Clé] => Lorem ipsum dolor sit amet 24
        [Site] => http://www.test.com
        [Page positionnée] =>  no result
        [Titre de la page] => 
        [Date] => 28/02/2014
    )

[2] => Array
    (
        [Position] => 0
        [Moteur] => Bing.com 
        [Mot Clé] => Lorem ipsum dolor sit amet 33
        [Site] => http://www.test.com
        [Page positionnée] =>  no result
        [Titre de la page] => 
        [Date] => 28/02/2014
    )

[3] => Array
    (
        [Position] => 5
        [Moteur] => google.com
        [Mot Clé] => Lorem ipsum dolor sit amet 24
        [Site] => http://www.test.com
        [Page positionnée] =>  no result
        [Titre de la page] => 
        [Date] => 28/02/2014
    )

[4] => Array
    (
        [Position] => 22
        [Moteur] => Bing.com 
        [Mot Clé] => Lorem ipsum dolor sit amet 53
        [Site] => http://www.test.com
        [Page positionnée] => no result
        [Titre de la page] => 
        [Date] => 28/02/2014
    )

我想在两个数组中的所有Mot Clé中显示位置0的所有关键字Moteur,并且:

    foreach ($data_new as $key => $value) {
            if($data_old[$key]['Mot Clé']=$data_new[$key]['Mot Clé']  && $data_old[$key]['Position']=$data_new[$key]['Position'] == '0'&& $data_old[$key]['Moteur']=$data_new[$key]['Moteur'])
                print_array($data_new[$key]);
        }

我希望你理解我想要做的事情!什么是我的代码中的错误请!感谢

1 个答案:

答案 0 :(得分:0)

如果是当前代码,则使用赋值运算符=而不是比较运算符==(double equals)。考虑这个例子:

$data_old = array( array( 'Position' => 1, 'Moteur' => 'google.com', 'Mot Clé' => 'Lorem ipsum dolor sit amet 24', 'Site' => 'http://www.test.com', 'Page positionnée' => 'no result', 'Titre de la page' => '', 'Date' => '20/01/2014', ), array( 'Position' => 0, 'Moteur' => 'Bing.com', 'Mot Clé' => 'Lorem ipsum dolor sit amet 33', 'Site' => 'http://www.test.com', 'Page positionnée' => 'no result', 'Titre de la page' => '', 'Date' => '20/01/2014', ), array( 'Position' => 1, 'Moteur' => 'Bing.com France - (Tout afficher)', 'Mot Clé' => 'Lorem ipsum dolor sit amet 24', 'Site' => 'http://www.test.com', 'Page positionnée' => 'no result', 'Titre de la page' => '', 'Date' => '20/01/2014', ), array( 'Position' => 0, 'Moteur' => 'Bing.com', 'Mot Clé' => 'Lorem ipsum dolor sit amet 24', 'Site' => 'http://www.test.com', 'Page positionnée' => 'no result', 'Titre de la page' => '', 'Date' => '20/01/2014', ),);
$data_new = array( array( 'Position' => 1, 'Moteur' => 'google.com', 'Mot Clé' => 'Lorem ipsum dolor sit amet 24', 'Site' => 'http://www.test.com', 'Page positionnée' => 'no result', 'Titre de la page' => '', 'Date' => '20/01/2014', ), array( 'Position' => 0, 'Moteur' => 'Bing.com', 'Mot Clé' => 'Lorem ipsum dolor sit amet 33', 'Site' => 'http://www.test.com', 'Page positionnée' => 'no result', 'Titre de la page' => '', 'Date' => '28/02/2014', ), array( 'Position' => 1, 'Moteur' => 'Bing.com France - (Tout afficher)', 'Mot Clé' => 'Lorem ipsum dolor sit amet 24', 'Site' => 'http://www.test.com', 'Page positionnée' => 'no result', 'Titre de la page' => '', 'Date' => '20/01/2014', ), array( 'Position' => 0, 'Moteur' => 'Bing.com', 'Mot Clé' => 'Lorem ipsum dolor sit amet 24', 'Site' => 'http://www.test.com', 'Page positionnée' => 'no result', 'Titre de la page' => '', 'Date' => '28/02/2014', ),);

foreach($data_new as $key => $value) {
    // on the if, use (==)
    if($value['Position'] == 0 && $value['Position'] == $data_old[$key]['Position'] && $value['Moteur'] == $data_old[$key]['Moteur']) {
        echo '<pre>';
        print_r($value);
        echo '</pre>';
    }
}

Sample Code