2014-01-23 204 views
0

我的问题合并多个阵列(对象),并比较另一个阵列

试图创建类似的阵列,所以我可以对它们进行比较。

我正在创建一个文件的通讯组列表,添加通讯组列表工作正常,我列出了用户姓氏,用户名和用户部门,这些选中和发布,foreach用户我检索users.user_id并存储此在分配表(在distro_lis下)t如此。

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)。

$策略ID在方法参数

$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($行)返回的数组的数组接收(对象..不知道这里的术语),其看起来像这样( 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'。我如何获得第一个数组(数组或数组对象)到一个数组中,以便我可以将它与第二个数组进行比较?

回答

2

试试这个

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

var_dump($list_users); 
+0

试过类似的东西,谢谢 – Pwner