Trigub_Ilia

Рекурсивно пройтись по массиву

Apr 28th, 2018
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
  2.  
  3. $xml = simplexml_load_file('company_new.xml');
  4.  
  5. $json_string = json_encode($xml);
  6. $arData = json_decode($json_string, true);
  7. #p($arData);
  8.  
  9. $arResult = array();
  10.  
  11. function itemRecursive($arr, $parent){
  12.     global $arResult;
  13.  
  14.     // нет подразделенний, раздел только оник
  15.     if(isset($arr["Ид"])){
  16.         $arResult[] = array(
  17.             'XML_ID' => $arr["Ид"],
  18.             'NAME' => $arr["Наименование"],
  19.             'HEAD' => $arr["Руководитель"],
  20.             'PARENT' => $parent
  21.         );
  22.  
  23.         itemRecursive($arr["Подразделения"]["Подразделение"], $arr["Ид"]);
  24.     }
  25.     else{
  26.         // подразделов много, делаем перебор
  27.         foreach($arr as $key=>$arItems){
  28.             $arResult[] = array(
  29.                 'XML_ID' => $arItems["Ид"],
  30.                 'NAME' => $arItems["Наименование"],
  31.                 "HEAD" => $arItems["Руководитель"],
  32.                 'PARENT' => $parent
  33.             );
  34.  
  35.             if(isset($arItems["Подразделения"]["Подразделение"])){
  36.                 itemRecursive($arItems["Подразделения"]["Подразделение"], $arItems["Ид"]);
  37.             }
  38.         }
  39.     }
  40.  
  41.  
  42. }
  43.  
  44. itemRecursive($arData["Классификатор"]["Подразделения"]["Подразделение"], "");
  45.  
  46. p($arResult);
Add Comment
Please, Sign In to add comment