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 :

[Tableaux] Insertion et suppression dans un tableau multi-dimension


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 90
    Points : 40
    Points
    40
    Par défaut [Tableaux] Insertion et suppression dans un tableau multi-dimension
    Bonjour à tous!

    Voilà jai un petit problème en php :
    j'ai un tableau à deux dimension donc je voudrai ssupprimer et/ou insérer des lignes !

    voici mon code d'initialisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $cpt = 0;
     
    while($row = mysql_fetch_array($result))
    {
    	$tableau[$cpt][0]=$row['debut'];
    	$tableau[$cpt][1]=$row['heure_fin'];
    	$tableau[$cpt][2]=$row['idtype_temps'];
    	$tableau[$cpt][3]=$row['num_dossier'];
    	$tableau[$cpt][4]=$row['duree'];
    	$cpt++;
    }
    Vous remarquerez que mes données proviennent d'une requetes mysql.

    voici ma fonction d'insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function tab_insert($tab,$ligne,$indice)
    {
    	global $tab;
    	$tab1 = array_slice ($tab, 0, $indice);
    	$tab2 = array_slice ($tab, $indice);
    	array_push ($tab1, $ligne);
    	$tab = array_merge ($tab1, $tab2);
    }
    voici comment j'appel ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tab_insert($tableau,$ligne,2)
    $ligne est un tableau de 5 colonne que je veux ajouter.

    Lorsque j'execute un tel script, la fonction array_slice plante en me disant que $tab doit être du type tableau. Or lorsque je teste sont type dans la fonction, $tab est bien du type tableau.

    Donc soit j'utilise mal ma fonction ou alors arry_slice. Ou alors array_slice ne marche qu'avec des tableaux à une dimension.

    Merci d'avance pour votre aide.

    ps : Si mes information ne sont pas assez claires ou trop peu abondante dites le.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Pourquoi mets-tu un global dans la fonction? En plus, tu crée une référence globale sur une variable inexistante.

    C'est inutile. Essaye d'utiliser les sorties de fonctions conventionnelles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function tab_insert($tab, $ligne, $indice){
    	$tab1 = array_slice ($tab, 0, $indice);
    	$tab2 = array_slice ($tab, $indice);
    	array_push ($tab1, $ligne);
    	return array_merge ($tab1, $tab2);
    }
     
     
    $tableau = tab_insert($tableau, $ligne, 2);

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 90
    Points : 40
    Points
    40
    Par défaut
    c'est du code brouillon, c'est pour sa qu'il est pas propre !

    bon j'ai ma solution :

    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
    25
    26
    27
    28
    29
     
    function tab_insert($tab,$val,$indice) 
    {
    	$tab_ini=array();
    	$tab_unique=array();
       	for($n=0;$n<count($tab);$n++) 
       	{
    	 	$tab_ini[]=serialize($tab[$n]);
       	}
       	$val = serialize($val);
       	$tab1 = array_slice($tab_ini,0,$indice);
    	$tab2 = array_slice($tab_ini,$indice);
    	array_push($tab1,$val);
       	$tab_ini = array_merge($tab1,$tab2);
     
       	for($n=0;$n<count($tab_ini);$n++)
       	{
    	 	$tab_unique[]=unserialize($tab_ini[$n]);
       	}
     
       	foreach ($tab_unique as $key => $row)
       	{
    	 	if (!is_array($row))
    	 	{
    			unset($tab_unique[$key]);
    		}
       	}
       	return $tab_unique;
    }
    vala vala !!!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Juste par curiosité, pourquoi ce serialize/unserialize?

Discussions similaires

  1. [Tableaux] recherche dans un tableau multi dimension
    Par kagura dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2007, 14h27
  2. Réponses: 4
    Dernier message: 29/11/2006, 12h00
  3. Réponses: 1
    Dernier message: 23/06/2006, 11h19
  4. [Tableaux] Insertion dynamique ligne dans un tableau
    Par masseur dans le forum Langage
    Réponses: 12
    Dernier message: 28/03/2006, 14h53
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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