[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобраться с циклами
l@pteff
здравствуйте, возникла такая ситуация: есть страница описание товара, в виде таблицы с определенной сортировкой вывода свойств. Таблица должна быть такого вида:

<table>
<tr>
<!--Обычные параметры-->
<td class="character_title">Название параметра</td>
<td
class="character_title">Значение параметра</td>
</tr>
<tr>
<td
class="character_title">Название параметра</td>
<td
class="character_title">Значение параметра</td>
</tr>
<tr>
<td
class="character_title">Название параметра</td>
<td
class="character_title">Значение параметра</td>
</tr>
<tr>
<td
class="character_title">Название параметра</td>
<td
class="character_title">Значение параметра</td>
</tr>
<!--/Обычные параметры-->


<tr>
<td
class="character_title">Название гл. параметра</td> <!--Главные параметры-->
<td class="character_title">Значение гл. параметра</td>
</tr>
<tr>
<td
class="character_title">Название гл. параметра</td>
<td
class="character_title">Значение гл. параметра</td> <!--/Главные параметры-->
</tr>
</table>


т.е. сначала должны выводиться названия и значения обычных свойств а затем гл. параметров
у меня она получается такой

<table>
<tr>
<td
class="character_title">Название параметра</td>
<td
class="character_title">Название параметра</td>
<td
class="character_title">Название параметра</td>
<td
class="character_title">Название параметра</td>
<td
class="character_title">Значение параметра</td>
<td
class="character_title">Значение параметра</td>
<td
class="character_title">Значение параметра</td>
<td
class="character_title">Значение параметра</td>
</tr>

<tr>
<td
class="character_title">Название гл. параметра</td>
<td
class="character_title">Название гл. параметра</td>
<td
class="character_title">Значение гл. параметра</td>
<td
class="character_title">Значение гл. параметра</td>
</tr>
</table>


В каком-то месте видимо не дописан цикл, не могу разобраться
Вот код вывода таблицы

$arvars=array(); /*массив для заголовков свойств*/
$arelemvars=array(); /*массив для значений свойств*/
foreach($arResult["PROPERTIES"] as $cell=>$arElement) {
$arprop=CIBlockElement::GetProperty($arElement['IBLOCK_ID'],$arElement['ID'],Array(),Array());
while($ar_props = $arprop->Fetch()) {
$arvars[$arElement['ID']]=$arElement['NAME']; /*заполняем массив названий свойств*/
$arelemvars[$arElement['ID']]=$arElement['VALUE']; /*заполняем массив значений свойств*/
}
}



$id_values1=array(281, 283, 284, 486, 287, 288, 289, 291, 465, 292, 293, 294); /*массив проверяемых значений (гл.пераметров)*/

$begin_titles=array(); /*массив для названий выводимых в первую очередь*/
$begin_values=array(); /*массив для значений выводимых в первую очередь*/

$main_params1_titles=array(); /*массив для названий выводимых в последнюю очередь*/
$main_params1_values=array(); /*массив для значений выводимых в последнюю очередь*/
?>


<!--таблица вывода-->
<
table id="product_characters_table" cellpadding="0" cellspacing="0">
<?
if ($arResult['IBLOCK_SECTION_ID']==86) {
foreach ($arvars as $k=>$v) { /*обход массива названий свойств*/
if (in_array($k,$id_values1)) { /*если свойство - гл.параметр*/
$main_params1_titles[$k]=$v; unlink($arvars[$k]);} /*Названия выводимые в последнюю очередь (гл.параметры)*/
else {
$begin_titles[$k]=$v; unlink($arvars[$k]);} /*Названия выводимые в первую очередь*/
}


foreach ($arelemvars as $k=>$v) { /*обход массива значений свойств*/
if (in_array($k,$id_values1)) { /*если свойство - гл.параметр*/
$main_params1_values[$k]=$v; unlink($arvars[$k]);} /*Значения выводимые в последнюю очередь (гл.параметров)*/
else {
$begin_values[$k]=$v; unlink($arvars[$k]);} /*Значения выводимые в первую очередь*/
}
?>

<tr>
<?if (count($begin_titles)>0) {
foreach ($begin_titles as $k=>$v) {?>
<td class="character_title"><?=$v?></td>
<?}
}

if (count($begin_values)>0) {
foreach ($begin_values as $k=>$v) {?>
<td class="character_total"><?=$v?></td>
<?}
}

?>
</tr>

<
tr>
<?if (count($main_params1_titles)>0) {
foreach ($main_params1_titles as $k=>$v) {?>
<td class="character_title"><?=$v?></td>
<?}
}

if (count($main_params1_values)>0) {
foreach ($main_params1_values as $k=>$v) {?>
<td class="character_total"><?=$v?></td>
<?}
}

?>
</tr>

<?}?>
</table>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.