Я, например, с такой проблемой столкнулся при переборе значений свойств $arFields. В этом массиве сначала я замечал только другие массивы, а потом в нем появилось строковое поле. Оно появилось от того, что я не выбрал для свойства ни одного из множественных значения. В результате пришлось лепить такую вот конструкцию, что бы потом еще сюрпризов не встретить.
[CODE]while ($arProps = $dbProps->GetNext()){
$prop[$arProps["CODE"]]["ID"] = $arProps["ID"];
$prop[$arProps["CODE"]]["OLD"] = (is_array($arProps["~VALUE"]))?implode("/",$arProps["~VALUE"]):$arProps["~VALUE"];
if(is_array($arFields))
if(is_array($arFields["PROPERTY_VALUES"]))
if(is_array($arFields["PROPERTY_VALUES"][$arProps["ID"]]))
if(is_array($arFields["PROPERTY_VALUES"][$arProps["ID"]][$arProps["PROPERTY_VALUE_ID"]]))
if(is_array($arFields["PROPERTY_VALUES"][$arProps["ID"]][$arProps["PROPERTY_VALUE_ID"]]["VALUE"]))
$prop[$arProps["CODE"]]["NEW"] = implode("/",$arFields["PROPERTY_VALUES"][$arProps["ID"]][$arProps["PROPERTY_VALUE_ID"]]["VALUE"]);
else
$prop[$arProps["CODE"]]["NEW"] = $arFields["PROPERTY_VALUES"][$arProps["ID"]][$arProps["PROPERTY_VALUE_ID"]]["VALUE"];
}[/CODE]
Я посчитал, лучше перестраховаться :)