Fonctionnement de array_push() ?? [Résolu]

Signaler
Messages postés
112
Date d'inscription
dimanche 6 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2007
-
Messages postés
112
Date d'inscription
dimanche 6 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2007
-
Bonsoir à tous, je me retrouve face à un problème qui me perturbe un peu. J'ai un tableau de tableaux auquel je veux ajouter des éléments, voici mon code :
                       
                        $chaine=array(array());
                        $chaine['a']=array('o');
                        $chaine['a']= array_push($chaine['a'], 'o')
                        $chaine['a']= array_push($chaine['a'], 'o');

Or, j'obtiens l'erreur : Warning: array_push() [function.array-push]: First argument should be an array.

Pourtant, le premier argument ($chaine['a']) est bien un tableau puisque $chaine est un tableau de tableau... Où est-ce que j'ai faux dans mon résonnement ?

Merci à tous.

Vince
A voir également:

3 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

ton raisonnement est juste? C'est ton utilisation de la fonction qui ne l'est pas : array_push ne renvoie PAS le tableau, il le modifie (le tableau est passé par référence à la fonction). array_push ()à renvoie un booléen, true ou false selon s'il réussit ou échoue.
Donc quand tu fais :
$chaine['a']= array_push($chaine['a'], 'o');
$chaine['a'] vaut true
et l'appel suivant échoue puisque $chaine['a'] n'est plus un tableau.
<?php
$chaine['a']=array('o');
array_push($chaine['a'], 'o');
array_push($chaine['a'], 'o');
?>
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Hello,

on ne dit pas

                        $chaine=array(array());
                        $chaine['a']=array('o');
                        $chaine['a']= array_push($chaine['a'], 'o')
                        $chaine['a']= array_push($chaine['a'], 'o');

mais

                        $chaine=array(array());
                        $chaine['a']=array('o');
                        array_push($chaine['a'], 'tata')
                        array_push($chaine['a'], 'toto');

à+
Messages postés
112
Date d'inscription
dimanche 6 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2007

Ah ok !! Merci infiniment, c'est ce genre de ptit problème qui fait perdre beaucoup de temps pour pas grand chose ;) Merci encore !

Vince