У меня есть базовый экземпляр zend_config_xml, в котором хранится некоторая информация об инвентаризации, например, какие продукты находятся на пополнении (replenish_departments) по сравнению с тем, какие продукты не могут быть переупорядочены (fashion_departments). (к сожалению, наша продукция классифицируется по отделам, каждый отдел имеет уникальный альфа-код)
Мой xml выглядит примерно так:
<inventory>
<settings>
<allow_backorders>1</allow_backorders>
<replenish_departments>
<department>M</department>
</replenish_departments>
<fashion_departments>
<department>MF</department>
<department>MS</department>
</fashion_departments>
</settings>
</inventory>
Что мне нужно сделать, так это быстро определить, является ли данный код отдела пополнением или способом. То, что я пытался, было просто (или я так думал):
foreach ($inv_settings->replenish_departments as $replenish_deptcode) {
if ($given_deptcode == $replenish_deptcode) return true;
}
Однако я обнаружил, что когда есть один дочерний узел, вы не можете перебирать его. Другими словами, это кодовые слова для fashion_departments, но не replenish_departments.
В чем тут подвох?
РЕДАКТИРОВАТЬ: Я обнаружил, что если я приведу $ inv_settings в качестве массива внутри foreach, я могу выполнить итерацию без ошибки. Пока что этот метод я использую, но я все еще открыт для лучшего исправления.