我无法弄清楚如何使用以下代码纠正我遇到的问题。我正在尝试列出Active Directory中所有人的姓名和电子邮件。这段代码有效。但是,执行时我也会收到以下警告。
警告:不能将标量值用作数组。
根据我在线阅读,我需要设置“$ name ['mail'] ['0'] =”未找到“;”到一个数组。我的问题是我将如何做到这一点。我已经尝试过各种我想不到的方法,但都没有成功。如果有人能提供一些反馈,我将不胜感激。
foreach ($results as $name) {
if (!isset($name['mail']['0'])){
$name['mail']['0'] = "Not Found";
}
$allnames[$name['cn']['0']]['mail'] = $name['mail']['0'];
答案 0 :(得分:0)
看起来您正在尝试将“未找到”值BACK分配给正在运行的ldap查询的结果。
当我编写代码以从ldap获取用户信息时,我总是将值插入到不同的数组中(获取我想要的字段),然后在HTML中显示该数组:
foreach ($results as $name)
{
if (isset($name['mail']['0']))
// Check if it IS set, rather than not set and then append the data.
{
$allnames[$name['cn']['0']]['mail'] = $name['mail']['0'];
}
}
然后,在您拥有所有要显示的字段后,显示$allnames
数组。
话虽如此,当我构建用户信息数组时,我使数组变得更加简单 - 知道我想要显示的内容,更多内容如下:
foreach ($results as $name)
{
if (isset($name['mail']['0']))
// Check if it IS set, rather than not set and then append the data.
{
$allnames['mail'] = $name['mail']['0'];
}
}
你(或者至少我)在制作我收集的信息数组时不需要遵循ldap结构,而是我想从目录中获取特定字段,然后按照它们的显示来显示它们 - 对于例如,当我输出 mail 中的值时,我可能希望将其作为电子邮件地址进行超链接,因此我将其保存在我通过密钥知道的数组元素中,稍后再参考。