전역 변수를 사용하여 개체/배열을 구문 분석하는 재귀 함수가 있습니다. 전역 변수를 주석 처리하면 아무 것도 얻을 수 없지만 배열에 남겨두면 배열 자체에 다른 값이 추가됩니다. 여기서 뭔가를 바꿔야합니까?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;
}
INPUT :
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 @Sebastian 나는 변화를 만들었지 만 여전히 내가 원하는 결과를 얻지 못했다. –
오, 참으로 나는 지금 그것을 본 것 같아. 보십시오 $ in_arr [] = getResp ($ 요소); :-) – Sebastian