foreach数组循环并不总是在Windows上工作

时间:2013-06-18 07:50:51

标签: php

我遇到了这种奇怪的情况。 PHP如下:

$complete_categories_list=array();

foreach ($modules_library_processed as $key=>$modules_categories_rendered) {
    foreach ($modules_categories_rendered['modulecategories'] as $module_category_key=>$module_category_values) {
        foreach ((array) $module_category_values as $module_key_inner=>$module_category_value) {
            $complete_categories_list[]=trim($module_category_value);
        }
    }
}

这在Unix / Linux localhost中完美运行,在某些情况下可以在Windows localhost中运行。但不是全部。问题是,在循环结束时,$complete_categories_list为空,即使$modules_library_processed上有一些数据。 $modules_library_processed是一个非常大的数组,所以我不能在这里发布整个数据。我希望有人能够阐明这一点。

更新:源是XML文件 我转换为数组的simplexml_load_string($modules_xml_exported);。结果是$modules_library_processed

print_r($module_category_values)导致SimpleXMLElement Object()

但是我把它变成了一个阵列......所以它应该正常工作吗?

1 个答案:

答案 0 :(得分:0)

我认为我已经修复了问题根本原因是脚本处理SimpleXML,当脚本在Windows下运行时,即使使用所有类型转换等,也无法播放。我最终重写了我的脚本,所以它不会输出任何SimpleXML元素,但都以数组/字符串格式输出。我希望这可以帮助别人。感谢。