IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Tableau, copie de tableau et count()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut Tableau, copie de tableau et count()
    Bonjour,

    A nouveau je vous sollicite. J'ai une fonction push() qui prends en paramètre un tableau et une valeur. La fonction push() ajoute la valeur au tableau et retourne un tableau de taille +1 par rapport au tableau passé en paramètre.

    Je pensais initialement pouvoir faire ceci en passant le tableau par adresse et faire comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function push (&$bInA, $i) {
    	$idx= count($bInA)+1;
    	$bInA[$idx] = $i;
    //	return $bInA; 
    }
    Mais elle ne fonctionne pas bien. J'ai ensuite essayé de modifier cette fonction push en créant un nouveau tableau intermédiaire, copier toute les donné de l'ancien tableau (celui passé en paramètre) et ajouter la nouvelle valeur. De cette façon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function push ($bInA, $x) {
    	$tmpLst = array();
    	$idx= count($bInA)+1;
     
    	for($i=0; $i<count($bInA); $i++ ) {
    		$tmpLst[$i]= $bInA[$i];
    	}
    	$tmpLst[$idx]= $x;
     
    	return $tmpLst; 
    }
    Or, elle ne fonctionne pas. Je l'appelle comme ceci dans un fichier PHP que j'ai nommé 'test.php'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
     
    require_once('../lib/lib_mediateque.php'); // cette bibliothèque contiens la fonction push()
     
    $lst = array();
     
    $lst[0]=1;
    $lst[1]=12;
    $lst[2]=112;
    $lst[3]=134;
    $lst[4]=1223;
     
     
    $lst = push($lst, 1000);
     
    // J'affiche toute les valeurs du tableau
    	echo "<br>";
    	for($i=0; $i<count($lst); $i++ ) {
    		echo "$i   ";
    		echo "$lst[$i]";
    		echo "<br>";
    	}
    ?>
    Or, a l'affichage du tableau, j'ai un erreur du type:"Notice: Undefined offset: 5 ".

    Une soluce ?

    J.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    C'ets bon. Ca marche. J'avais un +1 en trop dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $idx= count($bInA)+1;
     
    au lieu de:
     
    $idx= count($bInA);
    En revanche, je serais interésé de savoir comment on peut faire (si on peut) en apssant le tableau pas adresse et sans recopier les valeurs dans un tableau intermeidiare. Ou même si on peut juste faire l chose suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $lst[count($lst)] = $x$x est la nouvelle valeur
    Une idée ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    C'est tout bon. Le passage par adresse fonctionne trés bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function push2 (&$bInA, $i) {
    	$idx= count($bInA);
    	$bInA[$idx] = $i;
    }

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Question bête : pourquoi ne pas utiliser array_push ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    Celira, ce n'est pas un question bête. Ce array_push est la fonction qui résous mon problème. Je ne la connaissais pas. Merci.

    Par ailleurs, on peut utiliser le code suivant, qui fait exactement la même chose:

    Confère http://fr.php.net/manual/fr/function.array-push.php

    J.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. redimenssionnement & copie de tableau
    Par TOPGUN89 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 24/09/2007, 15h45
  2. Format des surfaces et copies vers tableau
    Par ultimanu dans le forum DirectX
    Réponses: 7
    Dernier message: 12/04/2007, 17h33
  3. [Tableaux] affichage tableau php apres requete sql count
    Par heteroclite dans le forum Langage
    Réponses: 1
    Dernier message: 13/09/2006, 21h53
  4. Copie de tableau dynamique Tridimensionel
    Par Zenol dans le forum C++
    Réponses: 23
    Dernier message: 19/12/2005, 17h00
  5. [Tableau]Problèmes avec copie de tableau
    Par Itachi-san dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo