Fatal error: Call to undefined function recursive_array

gui
Eléphant du PHP | 100 Messages

30 mars 2010, 11:13

Bonjours à tous,
Voilà je suis désolé de demander une nouvelle fois votre aide mais je bloque sur un étrange problème.
La derniere fois vous m'aviez recommander d'utiliser la fonction recursive array_search récupérer sur php.net. Cette fonction permet de faire exactement se que je souhaite à savoir récupérer la clé d'une valeur.

function recursive_array_search($needle,$haystack) {
    		foreach($haystack as $key=>$value) {
      		  $current_key=$key;
       			if($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false)) {  
        			 return $current_key;
        		}
    		}
    	return false;
	}
Celle ci fonctionne correctement seulement lorsque je l'appelle

$found=new selection();
$found->recursive_array_search($max,$this->tab);

Celle ci me renvoie une erreur fatale:

Fatal error: Call to undefined function recursive_array_search()

En m'indiquant la ligne "if($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false))" ci dessus ligne 4.
C'est cela que je ne comprend pas pourquois me dit-il que cette fonction recursive_array_search contenue dans cette même fonction n'est pas définie??

La fonction se trouve dans le même script du coup pas besoin de mettre de Include ou require_once.
Voila si quelqu'un peut m'aider de nouveau.

Merci d'avance

ViPHP
ViPHP | 5462 Messages

30 mars 2010, 11:14

cette fonction ne fais pas partie de ta class
recursive_array_search($max, $found->tab);

gui
Eléphant du PHP | 100 Messages

30 mars 2010, 11:20

Effectivement elle est en dehors de la fonction où je l'appelle, mais si je la place dans la fonction où je l'appelle ca va marche la première fois puis dès que la fonction est à nouveau parcourus il me dit que cette fonction est déjà définie, ducoup je l'ai placé dans le même script juste apres cette fonction

ViPHP
ViPHP | 5462 Messages

30 mars 2010, 11:21

donc c'est bon

gui
Eléphant du PHP | 100 Messages

30 mars 2010, 11:23

Je sais théoriquement ca devrai fonctionner mais c'est le contenue de la fonction recursive qui pose problème et je ne voie pas pourquois

gui
Eléphant du PHP | 100 Messages

30 mars 2010, 11:32

Lorsque je met
recursive_array_search($max, $found->tab);
à la place de
$found->recursive_array_search($max,$this->tab)
Le script me repporte le même problème:"Fatal error: Call to undefined function recursive_array_search()" à cette même ligne

ViPHP
ViPHP | 5462 Messages

30 mars 2010, 11:34

faut pas que ton recursive_array_search soit definie dans ta classe

gui
Eléphant du PHP | 100 Messages

30 mars 2010, 11:58

C'est bon ca fonctionne nikel effetivement il fallait qu'elle soit en dehors de la classe.
Merci beaucoup stealth35 tu es un boss du php
Merci pour tout