public static function implodeDn(array $dn)
{
foreach ($dn as $index => $piece) {
$values = explode('=', $piece, 2);
if (count($values) === 1) {
throw new InvalidArgumentException(sprintf('Unable to parse DN piece "%s".', $values[0]));
}
$dn[$index] = $values[0] . '=' . self::escapeValue($values[1], null, LDAP_ESCAPE_DN);
}
return implode(',', $dn);
}