0

だから私は2つの配列を持っています:

1. $users_populated = users_populated: Array
(
    [0] => Array
        (
            [id] => 10000106
            [username] => 
            [name] => 
            [firstname] => 
            [initial] => 
            [surname] => 
        )

    [1] => Array
        (
            [id] => 10000106
            [username] => 
            [name] =>  
            [firstname] => 
            [initial] => 
            [surname] => 
            [email] => 
            [role] => 
            [roleids] => 
            [platform] => 
        )

    [2] => Array
        (
            [id] => 10000065
            [username] => 
            [name] =>  
            [firstname] => 
            [initial] => 
            [surname] => 
            [email] => 
        )

    [3] => Array
        (
            [id] => 296
            [username] =>
            [name] =>
            [firstname] => 
            [initial] => 
            [surname] => 
            [email] => 
                  )

    [4] => Array
        (
            [id] => 297
            [username] =>
            [name] =>
            [firstname] =>
            [initial] => 
            [surname] =>
            [email] => 
           )
        )

2. $user_list: Array
(
    [0] => 10000106
    [1] => 297
)

したがって、 Entries である 2 番目の配列と一致する 1 番目の配列の値が必要です。

$output = output: Array
(
[0] => Array
        (
            [id] => 10000106
            [username] => 
            [name] => 
            [firstname] => 
            [initial] => 
            [surname] => 
        )
 [1] => Array
        (
            [id] => 297
            [username] =>
            [name] =>
            [firstname] =>
            [initial] => 
            [surname] =>
            [email] => 
           )

)

要するに、1 番目の配列の ID と 2 番目の配列の値が一致する必要があります

配列交差キーを使用しようとしましたが、うまくいきませんでした..

読んでくれてありがとう。

4

3 に答える 3

2

使用array_uintersect():

$result = array_uintersect($one, $two, function($x, $y)
{
   $x = is_array($x)?$x['id']:$x;
   $y = is_array($y)?$y['id']:$y;
   return $x-$y;
});

- 2 番目の配列はプレーンなので、コールバックで直接動作します。

于 2014-04-04T07:03:06.707 に答える
0

値の順序に関係なく、2 つの配列に同じ値が含まれているかどうかを確認する場合、「==」または「===」は使用できません。この機能を試してみてください。

<?php
function array_equal($a, $b) {
    return (is_array($a) && is_array($b) && array_diff($a, $b) === array_diff($b, $a));
}
?>
于 2014-04-04T07:06:25.637 に答える