Мой код не работает, как предполагалось, и через некоторое время он начинает размещать неправильные данные, найдите идентификатор на основе имени DN и добавьте его в качестве True Parent_id. Что я пытаюсь сделать исправить список вне заказа в порядке на основе dn < /p>
базовый массив < /p>
array
[
{
"id": 0,
"dn": "OU=Microsoft Exchange Security Groups,DC=local,DC=com"
},
{
"id": 1,
"dn": "OU=Domain Controllers,DC=local,DC=com"
},
{
"id": 2,
"dn": "OU=DIT,OU=DVIOU,DC=local,DC=com"
},
{
"id": 3,
"dn": "OU=Service Accounts,DC=local,DC=com"
},
{
"id": 4,
"dn": "OU=STT,OU=DIT,OU=DVIOU,DC=local,DC=com"
},
{
"id": 5,
"dn": "OU=STX,OU=DIT,OU=DVIOU,DC=local,DC=com"
},
{
"id": 6,
"dn": "OU=DVIOU,DC=local,DC=com"
},
{
"id": 7,
"dn": "OU=DPW,OU=DVIOU,DC=local,DC=com"
},
{
"id": 8,
"dn": "OU=STT,OU=DPW,OU=DVIOU,DC=local,DC=com"
},
{
"id": 9,
"dn": "OU=OLG,OU=DVIOU,DC=local,DC=com"
},
{
"id": 10,
"dn": "OU=DIT_Consultants,OU=DIT,OU=DVIOU,DC=local,DC=com"
},
{
"id": 11,
"dn": "OU=911,OU=DVIOU,DC=local,DC=com"
},
{
"id": 12,
"dn": "OU=Users,OU=911,OU=DVIOU,DC=local,DC=com"
},
{
"id": 13,
"dn": "OU=PERB,OU=DVIOU,DC=local,DC=com"
},
{
"id": 14,
"dn": "OU=STX,OU=PERB,OU=DVIOU,DC=local,DC=com"
},
{
< /code>
конечный результат должен быть ...
{
"name": "stt",
"id": 4,
"level": 2,
"parent": 1,
"parent_name": "dit",
"dn":
"parent_name": "dit",
"dn" "Ou = stt, ou = dit, ou = dviou, dc = local, dc = com"
}, < /p>
, но это не работает правильно, потому что он не сортирует большую часть массива правильно на основе значения DN. Я знаю, что код должен быть переработан, но не могу понять, как. < /P>
$fl;
$fltree;
$n = 1;
$subparent;
$prevparent;
$prevDN;
foreach ($values as $key => $value) {
if($key == 'count')
continue;
$d = explode(',', str_replace(",DC=local,DC=com", "", $value['dn']));
$fl = (str_replace("OU=", "", ($d)));
$fo;
foreach ($fo as $ke => $va) {
$r = str_replace("OU=".$fl[0].",", "", $value['dn']);
if ($r == $va['dn'])
$prevparent = array($ke,$va);
}
//get level
$level = 1;
foreach (array_reverse($fl) as $k => $v) {
//$p = $fl[0];
if ($fl[0] == $v) {
$level = $k;
//$prevparent = $p;
break;
}
}
if (count($fl) == 1) {
//echo ('key ' . $key .' name: ' . $fl[0] .' parent_id: ' .null . ' dn: ' . ($value['dn'])."");
$fo[$key] = (array('name' => $fl[0], 'id' => $key, 'parent_id' => 0, 'dn' => $value['dn']));
//$n-1;
} else {
//echo ('key ' . $v .' name: ' . $fl[0] .' parent_id: ' . $key . ' dn: ' . ($value['dn'])."");
$fo[$key] = (array('name' => $fl[0], 'id' => $key, 'level' => $level, 'parent_id' => ($subparent[0] == $fl[1] ? ($subparent[1]) : $prevparent[0]), 'parent_name' => $prevparent[1]['name'], 'dn' => $value['dn']));
//echo json_encode($subparent)." === ".json_encode($fl[1])."";
$n++;
}
$subparent = array($fl[0], $key);
}
}
}
return $fo;
Подробнее здесь: https://stackoverflow.com/questions/796 ... id-in-each
PHP LDAP Список всех OU и сортируйте с правильным родительским идентификатором в каждом ⇐ Php
Кемеровские программисты php общаются здесь
1751173160
Anonymous
Мой код не работает, как предполагалось, и через некоторое время он начинает размещать неправильные данные, найдите идентификатор на основе имени DN и добавьте его в качестве True Parent_id. Что я пытаюсь сделать исправить список вне заказа в порядке на основе dn < /p>
базовый массив < /p>
array
[
{
"id": 0,
"dn": "OU=Microsoft Exchange Security Groups,DC=local,DC=com"
},
{
"id": 1,
"dn": "OU=Domain Controllers,DC=local,DC=com"
},
{
"id": 2,
"dn": "OU=DIT,OU=DVIOU,DC=local,DC=com"
},
{
"id": 3,
"dn": "OU=Service Accounts,DC=local,DC=com"
},
{
"id": 4,
"dn": "OU=STT,OU=DIT,OU=DVIOU,DC=local,DC=com"
},
{
"id": 5,
"dn": "OU=STX,OU=DIT,OU=DVIOU,DC=local,DC=com"
},
{
"id": 6,
"dn": "OU=DVIOU,DC=local,DC=com"
},
{
"id": 7,
"dn": "OU=DPW,OU=DVIOU,DC=local,DC=com"
},
{
"id": 8,
"dn": "OU=STT,OU=DPW,OU=DVIOU,DC=local,DC=com"
},
{
"id": 9,
"dn": "OU=OLG,OU=DVIOU,DC=local,DC=com"
},
{
"id": 10,
"dn": "OU=DIT_Consultants,OU=DIT,OU=DVIOU,DC=local,DC=com"
},
{
"id": 11,
"dn": "OU=911,OU=DVIOU,DC=local,DC=com"
},
{
"id": 12,
"dn": "OU=Users,OU=911,OU=DVIOU,DC=local,DC=com"
},
{
"id": 13,
"dn": "OU=PERB,OU=DVIOU,DC=local,DC=com"
},
{
"id": 14,
"dn": "OU=STX,OU=PERB,OU=DVIOU,DC=local,DC=com"
},
{
< /code>
конечный результат должен быть ...
{
"name": "stt",
"id": 4,
"level": 2,
"parent": 1,
"parent_name": "dit",
"dn":
"parent_name": "dit",
"dn" "Ou = stt, ou = dit, ou = dviou, dc = local, dc = com"
}, < /p>
, но это не работает правильно, потому что он не сортирует большую часть массива правильно на основе значения DN. Я знаю, что код должен быть переработан, но не могу понять, как. < /P>
$fl;
$fltree;
$n = 1;
$subparent;
$prevparent;
$prevDN;
foreach ($values as $key => $value) {
if($key == 'count')
continue;
$d = explode(',', str_replace(",DC=local,DC=com", "", $value['dn']));
$fl = (str_replace("OU=", "", ($d)));
$fo;
foreach ($fo as $ke => $va) {
$r = str_replace("OU=".$fl[0].",", "", $value['dn']);
if ($r == $va['dn'])
$prevparent = array($ke,$va);
}
//get level
$level = 1;
foreach (array_reverse($fl) as $k => $v) {
//$p = $fl[0];
if ($fl[0] == $v) {
$level = $k;
//$prevparent = $p;
break;
}
}
if (count($fl) == 1) {
//echo ('key ' . $key .' name: ' . $fl[0] .' parent_id: ' .null . ' dn: ' . ($value['dn'])."");
$fo[$key] = (array('name' => $fl[0], 'id' => $key, 'parent_id' => 0, 'dn' => $value['dn']));
//$n-1;
} else {
//echo ('key ' . $v .' name: ' . $fl[0] .' parent_id: ' . $key . ' dn: ' . ($value['dn'])."");
$fo[$key] = (array('name' => $fl[0], 'id' => $key, 'level' => $level, 'parent_id' => ($subparent[0] == $fl[1] ? ($subparent[1]) : $prevparent[0]), 'parent_name' => $prevparent[1]['name'], 'dn' => $value['dn']));
//echo json_encode($subparent)." === ".json_encode($fl[1])."";
$n++;
}
$subparent = array($fl[0], $key);
}
}
}
return $fo;
Подробнее здесь: [url]https://stackoverflow.com/questions/79682194/php-ldap-list-all-ou-and-sort-with-correct-parent-id-in-each[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия