[QUOTE]Рамиль Миннигалиев пишет:
$ItemsList = CIBlockElement::GetList($arOrder,$arFilter,$arGroupBy,$arNavStartParams,$arSelectedFields);while($Items = $ItemsList->GetNextElement()) { $arItems[] = Array( "INGREDIENTS"=>$Items->GetProperty("INGREDIENTS"), "SEC_SITE"=>$Items->GetProperty("SEC_SITE"), "CML2_TRAITS"=>$Items->GetProperty("CML2_TRAITS"),);} [/QUOTE]
Время выполнения будет расти пропорционально увеличению количества элементов. К тому же выборка будет содержать и неактивные элементы. Оно Вам надо?[QUOTE]Рамиль Миннигалиев пишет:
foreach ($arItems as $Items) :$prop_ing = $Items["INGREDIENTS"];$prop_sec = $Items["SEC_SITE"];for ($i=0;$i<count($arSections);$i++) : if(($prop_ing["VALUE_XML_ID"]==$_REQUEST["ING"])&&(in_array($arSections[$i]['ID'],$prop_sec['VALUE']))) $arSections[$i]["EL_CNT"]++;endfor; [/QUOTE]
Представим, что у Вас 1000 элементов. И хотя бы 30 секций. внутренний цикл выполнится 30 тыс. раз. Про то, что функцию count Вы вызываете на КАЖДОЙ итерации вместо 1 вызова на цикл, я молчу.[QUOTE]Рамиль Миннигалиев пишет:
function strtolower_cyr()
function strtoupper_cyr()
[/QUOTE]
Есть встроенные в php функции.[QUOTE]Рамиль Миннигалиев пишет:
function t_text($s) { return strtoupper_cyr($s[0]).strtolower_cyr(substr($s,1)); } [/QUOTE]
Нерационально.
[QUOTE]Рамиль Миннигалиев пишет:
$step = 10; $page = isset($_REQUEST['PAGE'])?$_REQUEST['PAGE']:1; $num_page = round(count($arResult['ITEMS'])/$step); if ($num_page > 1) : for($i=1; $i <= $num_page; $i++) :?> <a style="margin:5px;" href='?SECTION_ID=<?=$_REQUEST['SECTION_ID']?>&ING=<?=$_REQUEST['ING']?>&PAGE=<?=$i?><?= isset($_REQUEST['BY_NOMEN'])?"&BY_NOMEN":false; ?>'><?= $i==$page?"<span style='font-size:200%'>".$i."</span>":$i; ?></a> <? endfor; endif; [/QUOTE]
Рамиль, я правильно понимаю, что это эмуляция постранички?
$ItemsList = CIBlockElement::GetList($arOrder,$arFilter,$arGroupBy,$arNavStartParams,$arSelectedFields);while($Items = $ItemsList->GetNextElement()) { $arItems[] = Array( "INGREDIENTS"=>$Items->GetProperty("INGREDIENTS"), "SEC_SITE"=>$Items->GetProperty("SEC_SITE"), "CML2_TRAITS"=>$Items->GetProperty("CML2_TRAITS"),);} [/QUOTE]
Время выполнения будет расти пропорционально увеличению количества элементов. К тому же выборка будет содержать и неактивные элементы. Оно Вам надо?[QUOTE]Рамиль Миннигалиев пишет:
foreach ($arItems as $Items) :$prop_ing = $Items["INGREDIENTS"];$prop_sec = $Items["SEC_SITE"];for ($i=0;$i<count($arSections);$i++) : if(($prop_ing["VALUE_XML_ID"]==$_REQUEST["ING"])&&(in_array($arSections[$i]['ID'],$prop_sec['VALUE']))) $arSections[$i]["EL_CNT"]++;endfor; [/QUOTE]
Представим, что у Вас 1000 элементов. И хотя бы 30 секций. внутренний цикл выполнится 30 тыс. раз. Про то, что функцию count Вы вызываете на КАЖДОЙ итерации вместо 1 вызова на цикл, я молчу.[QUOTE]Рамиль Миннигалиев пишет:
function strtolower_cyr()
function strtoupper_cyr()
[/QUOTE]
Есть встроенные в php функции.[QUOTE]Рамиль Миннигалиев пишет:
function t_text($s) { return strtoupper_cyr($s[0]).strtolower_cyr(substr($s,1)); } [/QUOTE]
Нерационально.
[QUOTE]Рамиль Миннигалиев пишет:
$step = 10; $page = isset($_REQUEST['PAGE'])?$_REQUEST['PAGE']:1; $num_page = round(count($arResult['ITEMS'])/$step); if ($num_page > 1) : for($i=1; $i <= $num_page; $i++) :?> <a style="margin:5px;" href='?SECTION_ID=<?=$_REQUEST['SECTION_ID']?>&ING=<?=$_REQUEST['ING']?>&PAGE=<?=$i?><?= isset($_REQUEST['BY_NOMEN'])?"&BY_NOMEN":false; ?>'><?= $i==$page?"<span style='font-size:200%'>".$i."</span>":$i; ?></a> <? endfor; endif; [/QUOTE]
Рамиль, я правильно понимаю, что это эмуляция постранички?