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] Tableau à indices non continus


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Par défaut [Tableaux] Tableau à indices non continus
    Bonjour,
    J'ai un tableau tel celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    array(
      [0] array(
        [1] => "Foo"
        [2] => "Bar"
        [5] => "etc"
        [7]
      )
    [1] array(
    )
    [2] array(
    )
    [3] array(
    )
    )
    J'aimerai que les indices des tableaux contenu dans chacun de ces array (1 à n) devienne 0....N au lien de 1,2,3,5,7 (ou une suite aléatoire.)
    Possible de réorganiser les indices ?

    Merci !
    TNorth

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Salut,

    il est construit comment ton tableau ??? Car normalement, tu as bien 0..N, et si tu imbriques un autre tableau, il aura aussi 0..N.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Par défaut
    J'ai le meme problême !
    En fait j'ai un tableau de tableaux (bon ça, c'est pas primordial) contenant des infos que je veux afficher. Une fois affichées je veux les supprimer du tableau.
    Mais comme ça laisse des indices vides... ça fout la merde dans mes boucles apres.

    J'ai cherché un petit moment ce matin, mais voici ma question :

    peut-on réorganiser un tableau en enlevant ainsi les indices vides?


    ex :
    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
    while ( $sonsaffich )
    {
    for ( $i = GetFirstInd ($sonsaffich) ; @$sonsaffich[$i] ; $i++ )
    	{
    		if ( @GetMCCarRef ($sonsaffich[$i]) == GetMaxMCCarRef ($sonsaffich) )
    		{
    			$nom	= $sonsaffich[$i][0];
    			$chemin = addslashes ($sonsaffich[$i][1]);
    			$query	= "Select Nom, Chemin, Duree, Masse, Registre, Effet, Evdyn, Action, Materiau, 
    							  Excitation, Spatialisation, Perception, Onomatope 
    					   From SONS where Nom = '$nom' and Chemin = '$chemin'";
    			$res	= mysql_query ($query);
    			$affich = mysql_fetch_row ($res);
     
    			echo "$affich[0] dans $affich[1]<br/>"; 
     
    			unset ($sonsaffich[$i]);
    		}
    	}
    }
    Je suis en train d'essayer de contourner le probleme par le biais de foreach.

  4. #4
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    Il te faut le reconstruire en le parsant de nouveau. Si par contre ton problème vient de l'effacement de certaines clés, utilise la fonction array_splice au lieu de unset.

    Info: http://fr3.php.net/manual/fr/ref.array.php

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Ah voila, c'est sûr que si vous supprimez des valeurs, forcémment les indices ne sont pas recalculés (et heureusement). Je ne connais pas array_splice mais vous etes forcémment obligé de reparser le tableau après une suppression.

  6. #6
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    Aussi dans une boucle pour gérer éviter les problèmes d'indices il suffit d'ajouter en début de boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($tableau[$i]))

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Par défaut
    Désolé de demander ça mais... comment on parse un tableau ^^ (je devine qu'il s'agit de recréer le tableau avec les indices qui se suivent, mais la recherche sur developpez.net ne me retourne rien)

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/05/2007, 14h42
  2. [Tableaux] Renverser un tableau indicé
    Par ciel65 dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2006, 10h24
  3. [Tableaux] Tableau compter récurence
    Par toflofr dans le forum Langage
    Réponses: 8
    Dernier message: 05/10/2005, 13h54
  4. [Tableaux] Tableau et resolution de l'ecran
    Par BK dans le forum Langage
    Réponses: 8
    Dernier message: 01/10/2005, 00h18
  5. [Tableaux] tableau dans un formulaire
    Par Elo13 dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2005, 17h28

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