Как вариант можно сначала получить все типы свойств инфоблока:
[CODE]$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$IBLOCK_ID));while ($prop_fields = $properties->GetNext()){ $arTipe1[$prop_fields["CODE"]]=$prop_fields["PROPERTY_TYPE"]; //или $arTipe2[$prop_fields["ID"]]=$prop_fields["PROPERTY_TYPE"]; } [/CODE]А потом:
[CODE]$dbElements = CIblockElement::GetList($arOrder, $arFilter, false, false, $arSelect);while ($arItem = $dbElements->GetNext(false,false)){ echo "<pre>"; print_r($arItem); echo "</pre>";} [/CODE]и получая в результате
[PROPERTY_код свойства_VALUE_ID] => id элемента:id свойства
можем получить PROPERTY_TYPE прямо в создании массива элемента спрашивая у массива свойств какой у него тип.