我有麻烦弄清楚如何纠正问题,我有以下代码。我试图列出我的活动目录中所有人的姓名和电子邮件。这段代码可以工作。然而,当它被执行时,我也得到了以下警告:
警告:不能使用标量值作为数组。
从我在网上读到的我需要设置" $name['mail']['0'] = "Not Found";"到一个数组。我的问题是我该怎么做。我已经尝试了所有我能想到的方法,但都没有成功。如果有人能给我提供一些反馈,我将不胜感激。
foreach ($results as $name) {
if (!isset($name['mail']['0'])){
$name['mail']['0'] = "Not Found";
}
$allnames[$name['cn']['0']]['mail'] = $name['mail']['0'];
看起来您正在尝试将"Not Found"值返回到您正在运行的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中的值时,我可能希望将其超链接为电子邮件地址,因此我将其保存在一个数组元素中,我知道键并稍后引用。