J'ai une fonction de récurrence qui analyse un objet/tableau avec une variable globale. Si je commente la variable globale, je n'obtiens rien, mais si je la laisse, elle ajoute au tableau d'autres valeurs qui devraient être dans son propre jeu de résultats. Ai-je besoin de changer quelque chose ici?php recursion variable globale?
MISE À JOUR # 2: Comment puis-je obtenir le retour que je veux, je pensais que je poussais toutes les valeurs uniques à la matrice?
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;
}
ENTRÉE:
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
)
RETOUR:
Array
(
[0] => a0E50000002jxYkEAI
)
RETOUR WANTED:
Array
(
[0] => a0E50000002jxYkEAI
[1] => a0E50000002jxhmEAA
)
Ne devriez-vous pas stocker la valeur de retour des appels récursifs? Comme si: $ in_arr = getResp ($ element); – Sebastian
Thnx @Sebastian J'ai fait le changement mais je n'obtiens toujours pas les résultats que je voudrais –
Oh oui, je pense que je le vois maintenant. Essayez $ in_arr [] = getResp ($ element); :-) – Sebastian