animdenis

AB Iblocks

Sep 13th, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.97 KB | None | 0 0
  1. //Params:
  2. $iblockA = 44;
  3. $iblockB = 6;
  4. $pregMatchStr = '#\((.*?)\)#';
  5. $testCountElem = 10;
  6. //Script:
  7. CModule::IncludeModule('iblock');
  8. $dbIblockB = CIblockElement::GetList([], ['IBLOCK_ID' => $iblockB], false, false, ['NAME', 'ID', 'XML_ID']);
  9. $arNamesB = [];
  10. $cnt = 0;
  11. while($obB = $dbIblockB->GetNext()){
  12.     preg_match($pregMatchStr, $obB['NAME'], $match);
  13.     if(!empty($match) && !empty($match[1]))
  14.         $arNamesB[$obB['XML_ID']] = $match[1];
  15.  
  16.     if((int)$testCountElem > 0 && $cnt++ > $testCountElem)
  17.         break;
  18. }
  19.  
  20. print_r($arNamesB);
  21.  
  22. $dbIblockA = CIblockElement::GetList([], ['IBLOCK_ID' => $iblockA, 'NAME' => $arNamesB], false, false, ['NAME', 'ID', 'XML_ID']);
  23. $arNamesA = [];
  24. while($obA = $dbIblockA->GetNext()){
  25.     $arNamesA[$obA['ID']] = $obA['NAME'];
  26. }
  27. print_r($arNamesA);
  28. $arNamesB = array_flip($arNamesB);
  29. $el = new CIBlockElement;
  30. foreach($arNamesA as $id => $name){
  31.     if(isset($arNamesB[$name])){
  32.         $el->Update($id, ['XML_ID' => $arNamesB[$name]]);
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment