Php 比较SQL数组和LDAP数组
我试图将SQL查询中的数组与LDAP搜索数组进行比较。我是否需要将LDAP数组的格式(我相信它是多维的)更改为关联数组 我比较的是工资表和Active Directory。这有助于解雇不再为公司工作的员工。此外,由于工资表中包含所有员工编号,因此它还可以方便地将员工编号输入到a.D.中 我的sql数组如下所示: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
[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);回声'代码>。