<?php
$in = ['CN=John Doe','CN=Users','DC=aab','DC=local','CN=Jane Ann Doe','CN=Users','DC=aab','DC=local'];
function initials_from_value($i) {
strtok($i, '=');
$i = strtok('=');
$names = explode(' ', $i);
$initials = array_map(function ($i) { return substr($i, 0, 1); }, $names);
return $initials;
}
$out = array();
foreach($in as $item) {
if(strpos($item, 'CN=') === 0 && $item !== 'CN=Users') {
$out[] = implode(' ', initials_from_value($item));
}
}
var_export($out);
出力:
array (
0 => 'J D',
1 => 'J A D',
)
補遺(部単位のみ最初と最後のイニシャル):
$out = array();
foreach($in as $item) {
if(strpos($item, 'CN=') === 0 && $item !== 'CN=Users') {
if(($initials = initials_from_value($item)) && count($initials) >= 2) {
$first = reset($initials);
$last = end($initials);
$out[] = $first . $last;
}
}
}
var_export($out);
出力:この1つは完全に働いた
array (
0 => 'JD',
1 => 'JD',
)
、ありがとうございました。 – Ryan
イニシャル「B」はどこから来ますか? –
投稿が編集されたため、追加のエントリ "DC = byl"がありました。 –