繁体   English   中英

使用php中的特定键比较多维数组

[英]Comparing multidimensional arrays using specific key in php

我有两个多维数组。 第一个是:

Array
(
     [0] => Array
          (
              [username] => J1
              [fullname] => John1
          )
     [1] => Array  
          (
              [username] => K1
              [fullname] => Kate
          )
     [2] => Array  
          (
              [username] => P1
              [fullname] => Peter
          ) 
     [3] => Array  
          (
              [username] => M1
              [fullname] => Mary
          ) 
) 

and the second one is:

Array
(
     [0] => Array
          (
              [username] => J1
              [fullname] => John33
          )
     [1] => Array  
          (
              [username] => L1
              [fullname] => Lucas
          )
     [2] => Array  
          (
              [username] => P1
              [fullname] => Paul
          ) 
)      

我想只使用它们的用户名选项比较两个数组,以便获得不包含在第二个数组中的第一个数组的元素(仅比较用户名)。

所以我想要一个新的数组,如下所示:

Array
    (
         [0] => Array  
              (
                  [username] => K1
                  [fullname] => Kate
              )
         [1] => Array  
              (
                  [username] => M1
                  [fullname] => Mary
              ) 
    ) 

有帮助吗? 非常感谢!!!

您可以在PHP> = 5.5.0中执行以下操作:

$result = array_diff_key(array_column($array1, null, 'username'),
                         array_column($array2, null, 'username')
);

尝试遍历一个数组并进行如下比较:

   $array_one = Array
(
     [0] => Array
          (
              [username] => J1
              [fullname] => John1
          )
     [1] => Array  
          (
              [username] => K1
              [fullname] => Kate
          )
     [2] => Array  
          (
              [username] => P1
              [fullname] => Peter
          ) 
     [3] => Array  
          (
              [username] => M1
              [fullname] => Mary
          ) 
);
   $array_two = Array
(
     [0] => Array
          (
              [username] => J1
              [fullname] => John33
          )
     [1] => Array  
          (
              [username] => L1
              [fullname] => Lucas
          )
     [2] => Array  
          (
              [username] => P1
              [fullname] => Paul
          ) 
); 
   foreach($array_one as $key => $value) {
       if($value['username'] == $array_two[$key]['username'])
          // do something
       else
          // do something
    }
$array1 = array(
    "0" => Array(
        "username" => "J1",
        "fullname" => "John1"
    ),
    "1" => Array(
        "username" => "K1",
        "fullname" => "Kate"
    ),
    "2" => Array(
        "username" => "P1",
        "fullname" => "Peter"
    ),
    "3" => Array(
        "username" => "M1",
        "fullname" => "Mary"
    )
);

$array2 = array(
    "0" => Array(
        "username" => "J1",
        "fullname" => "John33"
    ),
    "1" => Array(
        "username" => "L1",
        "fullname" => "Lucas"
    ),
    "2" => Array(
        "username" => "P1",
        "fullname" => "Paul"
    )
);

$newarr = array();
foreach( $array1 as $key => $val ) {
    if($val['username'] != $array2[$key]['username']){
        $newarr[] = $val;
    }
}

echo '<pre>';print_r($newarr);echo '</pre>';

输出:

Array
(
    [0] => Array
        (
            [username] => K1
            [fullname] => Kate
        )

    [1] => Array
        (
            [username] => M1
            [fullname] => Mary
        )

)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM