我有一个基本的 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,而不是replenished_departments。
这里有什么诀窍?
编辑:我发现如果我将 $inv_settings 类型转换为 foreach 内的一个数组,我可以在没有错误的情况下进行迭代。目前,这是我正在使用的方法,但我仍然愿意接受更好的修复。