0

我有任何数组:

$arSelect = Array("ID", "IBLOCK_ID", "NAME", "IBLOCK_SECTION_ID", "DETAIL_PAGE_URL", "EDIT_LINK", "DELETE_LINK");
$arFilter = Array("IBLOCK_ID" => $arParams['IBLOCK_ID'], "ACTIVE"=>"Y", "ACTIVE_DATE"=>"Y", "=PROPERTY_STATYS" => array(2,1), '=PROPERTY_LOT' => $arResult['ID']);

和输出形式:

<div class="panel-body second-links">
<?foreach ($arElement as $arElementItem):
if (($arSection['ID'] == $arElementItem['IBLOCK_SECTION_ID']) && ($arFilter['=PROPERTY_STATYS_VALUE'] == '1')):?>
<p>
    <a class="open_lot" href="javascript:void(0);" url="<?=$arElementItem['DETAIL_PAGE_URL']?>" idElement="<?=$arElementItem['ID']?>">
                    <?=$arElementItem['NAME']?>
    </a>
    <a>1</a>
</p>
    <?endif;
    endforeach;?>
</div>

条件不起作用$arFilter['=PROPERTY_STATYS'] == '1')如何正确放置这个条件?条件是如果数组的元素为 1,则输出文本,例如“1”,如果为“2”,则输出主元素旁边的文本 2。var_dump(arFilter):

array(5) {
   ["IBLOCK_ID"]=> int(14)
   ["ACTIVE"]=> string(1) "Y"
   ["ACTIVE_DATE"]=> string(1) "Y"
   ["=PROPERTY_STATYS"]=> array(2) {
         [0]=> int(2)
         [1]=> int(1)
      }
      ["=PROPERTY_LOT"]=> NULL
  }
4

1 回答 1

0

您应该使用($arElementItem['PROPERTY_STATYS_VALUE'] == '1')条件而不是您使用的条件。原因是 $arFilter 数组用于让数据库知道如何过滤项目(此逻辑在 component.php 文件中完成)。至于输出(通常在 template.php 中),您会看到有一个 foreach 循环,您可以通过 $arElementItem 访问该项目。希望这会有所帮助——如果不给我回信,我肯定会解决这个问题。

于 2017-10-04T10:22:15.873 回答