Php 比较SQL数组和LDAP数组

Php 比较SQL数组和LDAP数组,php,sql,arrays,active-directory,ldap,Php,Sql,Arrays,Active Directory,Ldap,我试图将SQL查询中的数组与LDAP搜索数组进行比较。我是否需要将LDAP数组的格式(我相信它是多维的)更改为关联数组 我比较的是工资表和Active Directory。这有助于解雇不再为公司工作的员工。此外,由于工资表中包含所有员工编号,因此它还可以方便地将员工编号输入到a.D.中 我的sql数组如下所示: [0] => Array ( [employeenumber] => 99999999999 [givenname] => JOHN

我试图将SQL查询中的数组与LDAP搜索数组进行比较。我是否需要将LDAP数组的格式(我相信它是多维的)更改为关联数组

我比较的是工资表和Active Directory。这有助于解雇不再为公司工作的员工。此外,由于工资表中包含所有员工编号,因此它还可以方便地将员工编号输入到a.D.中

我的sql数组如下所示:

[0] => Array (
     [employeenumber] => 99999999999 
     [givenname] => JOHN 
     [sn] => BOSS 
     [mail] => 
     [useraccountcontrol] => 
     [displayname] =>)  <--Each Entry appears like this
[162] => Array ( 
     [sn] => Array ( 
          [count] => 1 [0] => Doe) 
      [0] => sn [givenname] => Array ( 
          [count] => 1 [0] => John) 
      [1] => givenname [displayname] => Array ( 
          [count] => 1 [0] => John Doe ) 
      [2] => displayname [employeenumber] => Array ( 
          [count] => 1 [0] => 99999 ) 
      [3] => employeenumber [useraccountcontrol] => Array ( 
          [count] => 1 [0] => 66048 ) 
      [4] => useraccountcontrol [mail] => Array ( 
          [count] => 1 [0] => john.doe@email.com ) 
      [5] => mail [count] => 6 [dn] => CN=John Doe,CN=Users,DC=abc,DC=com )
我是否需要使LDAP数组具有与SQL数组相同的格式,如果需要,我该如何做?此外,并非LDAP数组中的所有条目都包含关于员工编号的部分。只有几个人输入了他们的员工编号,如果他们在公元前没有员工编号,我想这部分就不在数组中了

我还想创建一个表,比较这两个数组。我想让它列出SQL数组中的每个人和LDAP数组中的每个人(都按姓氏排序,因为有些SQL名称有不同的名字,比如Mike,LDAP有Michael)。如果此人在LDAP数组中,但SQL数组中没有相对匹配项,则我还希望该行突出显示某种颜色。我还需要它检查员工编号是否匹配,如果匹配,我只希望它显示LDAP数组中的条目,而不是SQL数组条目

这样,按照表格的显示方式,如果我发现一个人在a.D.中没有员工编号,我可以将其输入a.D.中,然后表格将只显示该人的a.D.条目

最后,我想修改该页面,以便您可以通过这一页面主动地从Active Directory中更改/添加/删除人员。但这超出了该项目目前的范围

如果您需要更多信息,请询问。我不允许发布我所有的当前代码,因为这违反了公司的政策,但我可以发布一般知识的部分(比如我如何进行LDAP搜索等)。我只需要修改某些方面来隐藏我们的信息/表名/IP等

编辑

在一位朋友的帮助下,我终于找到了答案。我必须重新构造代码,在foreach循环中创建foreach循环,并使用array push

总的来说,我做了以下工作:

foreach($LDAPARRAY as $value){
   foreach($SQLARRAY as $key => $data){
      if($data['employeenumber'] = $value['employeenumber']){
         unset($SQLARRAY[$key]);
      }
   }
}
array_push($LDAPARRAY, $SQLARRAY); 
我还对LDAP阵列进行了类似的处理,以使其摆脱愚蠢的格式。我首先对LDAP数组进行了处理,以将数组规范化为可接受的格式(与SQL数组已经采用的格式相同)。然后我就可以编写上面的代码,比较和组合数组。如果员工编号匹配,我只看到来自LDAP数组的条目(因为SQL数组从数组中删除了相应的条目)


现在,我可以将新的组合数组打印到一个表中,并且只能看到有员工编号的条目(来自sql表)和没有员工编号的AD条目。我仍在试图从SQL表中找出一个字段,可以与AD条目匹配,以查找AD中的人,而不是SQL表中的人。如果您对此有任何建议,那就太好了。

您能将数组的格式设置得更好一点,使其更具可读性吗?当然,我会尝试将其设置为更易于阅读的格式。结构对我来说还不太清楚(仍然)。在这里发布
echo“”的输出可能很方便;打印(myArray);回声'