Как вытащить записи из массива ldap_get_entries - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь получить список пользователей в группе Active Directory, используя php ldap_get_entries. Я могу без проблем подключиться к серверу ldap и выполнить привязку. Эта проблема, которая у меня есть, является результатом, который я получаю от массива при использовании ldap_get_entires. Вот что я использую для получения данных из группы:

$result = ldap_search($ldapConn, $ldaptree, "(member=*"),array('member'));
$data = ldap_get_entries($ldapConn, $result);
print_r($data);

Я получаю следующее:

Array([count] => 1 [0] => Array([member] => Array([count => 3 [0] => CN=Mike Jones,CN=Users,DC=DOMAIN,DC=NET [1] => CN=Van Smith,CN=Users,DC=DOMAIN,DC=NET [2] => CN=Jane Doe,CN=Users,DC=DOMAIN,DC=NET) [0] => member[count] => 1 [dn] => CN=Cool Guys,CN=Users,DC=DOMAIN,DC=NET))

Как мне вытащить только имена из этого массива в как это выглядит?

Mike Jones 
Van Smith 
Jane Doe

1 Ответ

1 голос
/ 08 мая 2020

Спасибо @Thefourthbird за предложение. Он посоветовал мне использовать следующее, чтобы выделить нужные мне имена.

foreach ($array[0]["member"] as $key => $member) {
    if (is_int($key)) {
        $User[] = explode('=', explode(',', $member)[0])[1] . PHP_EOL;
    }
}

Единственное, что оставалось сделать, - это организовать данные в алфавитном порядке. Для этого я использовал функцию array_multisort.

array_multisort($User, SORT_ASC);
foreach ($User as $key => $SortUser) {
    echo $SortUser;
}

Теперь все имена выводятся в отдельной строке и в алфавитном порядке.

Jane Doe
Mike Jones 
Van Smith 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...