合并多个数组(对象)并与另一个数组进行比较

时间:2014-01-23 12:45:02

标签: php arrays

我的问题

尝试创建类似的数组,以便我可以比较它们。

我正在创建文件的分发列表,添加分发列表工作正常,我列出用户姓氏,用户名和用户部门,这些都是选中和发布的,foreach用户我检索users.user_id并将其存储在分发表(在distro_lis下)就像这样。

distro_id (AI, PK) | distro_list | policy_id
---------------------------------------------
        1          | 1 23 21 34  |     13
        2          | 10 22 21 34 |     15
        3          | 1 27 26 40  |     34

现在我正在编辑分发列表,所以对于一行,让我们说第1行,我获取distro_list并解析它以获取每个用户ID(来自distro_list)。

  

$ policyID在方法参数

中收到
$db = $this->dbh->prepare('SELECT distro_list FROM distro WHERE policy_id = :policy_id');
        $db->bindParam(':policy_id', $policyID);
        $db->execute();
        $row = $db->fetch(PDO::FETCH_ASSOC);

$ids = explode(' ',$row);
foreach ($ids as $user) {
            $db = $this->dbh->prepare('SELECT user_forename, user_surname, user_dept FROM users WHERE user_id = :user_id ORDER BY user_surname ASC');
        $db->bindParam(':user_id', $user);
        $db->execute();
        $row = $db->fetch(PDO::FETCH_ASSOC);
        var_dump($row);
        }

var_dump($ row)返回一个数组数组(对象......不确定这里的术语),看起来像这样(print_r)。

Array
(
    [user_forename] => fname1
    [user_surname] => sname1
    [user_dept] => dept1
)
Array
(
    [user_forename] => fname2
    [user_surname] => sname2
    [user_dept] => dept2
)
Array
(
    [user_forename] => fname3
    [user_surname] => sname3
    [user_dept] => dept3
)

我要比较它的数组(print_r)。

array
(
    [0] => Array
        (
            [user_forename] => fname1
            [user_surname] => sname1
            [user_dept] => dept1
        )

    [1] => Array
        (
            [user_forename] => fname2
            [user_surname] => sname2
            [user_dept] => dept2
        )

    [2] => Array
        (
            [user_forename] => fname3
            [user_surname] => sname3
            [user_dept] => dept3
        )
)

我理解为什么第一个数组看起来像那样,因为每次迭代后我都会看到var_dump'ing'。如何将第一个数组(数组或对象数组)放入单个数组中,以便将其与第二个数组进行比较?

1 个答案:

答案 0 :(得分:2)

试试这个

$list_users = array()
foreach ($ids as $user) {
    //...
    $list_users[] = $row;
}

var_dump($list_users);