Bonjour,
je n'arrive pas à faire ce que je veux alors je viens demander un petit coup de pousse...
J'ai un classe public qui se présente comme ceci:
public class maClass{
public $montab1 = array();
public mafunction1($montab2){
//...
/* Je souhaite que ce que je reçois à chaque fois en $montab2 soit inséreré à $tab1 de sorte qu'au final $montab1
soit un grand tableau accessible. J'avais pour ça utiliser array_merge:
*/
$this->montab1 = array_merge((array)$this->montab1, (array)$montab2);
}
public function afficher_montab(){
var_dump($this->montab1);
}
}
Et un fichier index qui se présente comme ça:
index.php
$maClassetableau = new maClass;
$maClassetableau->mafunction1(array("pomme" => "rouge"));
$maClassetableau->mafunction1(array("kiwi" => "vert"));
$maClassetableau->afficher_montab(); //--> m'affiche un tableau vide
Mon var_dump me rend un tableau vide au lieu d'un tableau qui contient tous les tableaux envoyé...
Quelqu'un a une idée d'ou vient le problème?
D'avance merci
J'ai trouvé le problème.
C'était juste une erreur dans l'ordre dans lequel je faisais mes appels fonction et création classe.
Ce n'est pas représenté dans le code que j'ai mis ici car comme c'était long, je n'avais pas tout mis.
Bref, désolée j'ai écrit ce topic pour rien.
Je précise juste que le bout de code mis au début est correct...
Je cloture
Merci pour la réponse mais c'est sur base de ce site, que j'ai fait ce que j'ai fait.
Je ne connaissais pas la fonction merge_array avant...
Je viens encore de relire mais je ne vois toujours pas le problème :-(
ta fonction est mal écrite !
$array_1 = array("jaune","vert","bleu");
$array_2 = array("violet,"pourpre","orange");
$couleurs = array_mergege($array_1,$array_2);
var_dump($couleurs);
Si tu veux, dans ta fonction , fusionner deux tableaux dans un seul, tu dois définir 2 variables de type tableau (obligé depuis php5), et créer un tableau vide qui va reécupérer le résultat de la fusion des deux derniers .
C'est ce que j'ai fait. J'ai bien 2 variables de type array.
La seule chose, c'est que au départ ma variable $montab1 est vide. Mais dés le premier appel à $maClassetableau->mafunction1, elle se remplit donc au 2ième appel, elle contient bien qqchose.
Voilà en fait ce que ça devrait faire:
$array_1 = array();
$array_2 = array("violet","pourpre","orange");
$array_1 = array_merge($array_1,$array_2);
var_dump($array_1);
ça retourne bien:
array
0 => string 'violet' (length=6)
1 => string 'pourpre' (length=7)
2 => string 'orange' (length=6)
Au deuxième appel, array1 contient le tbleau ci-dessus et devrait donc "merger" avec array2 qui cette fois est différent.
Je ne crois pas que le problème vienne de cette fonction
array_merge
car je l'ai testée en dehors de ma classe et ça fonctionne...
Je pense que je problème vient de ma classe même et la façon dont je l'utilise mais je ne comprends pas pourquoi...
Merci quand même pour ta réponse.