我有一个递归函数,用全局变量分析一个对象/数组。如果我注释掉全局变量,我什么都得不到,但是如果我把它留在它中,它会不断向数组中添加应该在它自己的结果集中的其他值。我需要在这里改变一些东西吗?php递归全局变量?
更新#2: 我怎么能得到我想要的回报,我以为我是推动所有的唯一值到数组?
function getResp($objectPassed) {
foreach($objectPassed as $element) {
if(is_object($element)) {
// recursive call
$in_arr = getResp($element);
}elseif(is_array($element)) {
$in_arr = getResp($element);
} else {
// XML is being passed, need to strip it
$element = strip_tags($element);
// Trim whitespace
$element = trim($element);
// Push to array
if($element != '') {
if (!preg_match("/^[0-9]$/", $element)) {
if (!in_array($element,$in_arr)) {
$in_arr[] = $element;
}
}
}
}
}
return $in_arr;
}
输入:
stdClass Object
(
[done] => 1
[queryLocator] =>
[records] => Array
(
[0] => stdClass Object
(
[type] => typeName
[Id] => Array
(
[0] => a0E50000002jxhmEAA
[1] => a0E50000002jxhmEAA
)
)
[1] => stdClass Object
(
[type] => typeName
[Id] => Array
(
[0] => a0E50000002jxYkEAI
[1] => a0E50000002jxYkEAI
)
)
)
[size] => 2
)
RETURN:
Array
(
[0] => a0E50000002jxYkEAI
)
WANTED RETURN:
Array
(
[0] => a0E50000002jxYkEAI
[1] => a0E50000002jxhmEAA
)
不应该存储递归调用的返回值吗?像这样:$ in_arr = getResp($ element); – Sebastian
thnx @塞巴斯蒂安我做了改变,但仍然没有得到我想要的结果 –
噢,我想我现在看到它。试试$ in_arr [] = getResp($ element); :-) – Sebastian