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] exploiter un tableau avec array_splice [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut [Tableaux] exploiter un tableau avec array_splice
    bonjour
    désolée si le sujet a été posté plusieurs fois mais je n'ai pas trouvé de réponses à mon problème :
    j'ai un tableau de 45 valeurs par exemple et j'aimerai extraire toutes les valeurs par un pas de 10, c'est à dire obtenir 5 tableaux avec pour les 4 premiers 10 valeurs dedans et pour le dernier 5 valeurs.
    j'ai utilisé la fonction array_splice mais là je cale sur le comment récupérer et exploiter les tableaux :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    $activites1 = array(
    							"ani",				
    							"fle",				
    							"ali",				
    							"hot",				
    							"inf",				
    							"aut",	
    							"bar",				
    							"lav",				
    							"bra",				
    							"lib", 				
    							"che",						
    							"mod",				
    							"bou",				
    							"pec",				
    							"bea",
    							"poi",				
    							"bij",				
    							"qui",				
    							"coi",				
    							"rap",				
    							"loi",				
    							"res",				
    							"cor",				
    							"ser",				
    							"div",				
    							"spo",				
    							"die",				
    							"tax",				
    							"dec",				
    							"tvh",				
    							"nui",				
    							"vid",				
    							"epi",				
    							"veh",				
    							"agi",				
    							"bat",				
    							"agv",				
    							"elc",
     
    						);
     
     
    						// Pour que la recherche fonctionne, on ne doit pas saisir toutes les activités en même temps
     
    						for($i = 0 ; $i < count($activites) ; $i++)
    						{
     
    							$tabActivites = array_slice($activites,$i,10,true);
     
    							$i = $i + 9;
                                                   }
    Avec ce code le problème est qu'il me génère 45 tableaux or je n'en veux que 5.
    quelqu'un a t il une solution ?
    merci d'avance

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
    $activites = array(
    "ani",
    "fle",
    "ali",
    "hot",
     "inf",
    "aut",
    "bar",
    "lav",
    "bra",
    "lib",
    "che",
    "mod",
    "bou",
    "pec",
    "bea",
    "poi",
    "bij",
    "qui",
    "coi",
    "rap",
    "loi",
    "res",
    "cor",
    "ser",
    "div",
    "spo",
    "die",
    "tax",
    "dec",
    "tvh",
    "nui",
    "vid",
    "epi",
    "veh",
    "agi",
    "bat",
    "agv",
    "elc",
    "elc",
    "elc",
    "elc",
    "elc",
    "elc",
    "elc",
    "elc",
    );
     
     
    for($i=0;$i<count($activites);$i+=10)
       $tabActivites[] = array_slice($activites,$i,10,true);
     
    echo '<pre>';
    print_r($tabActivites);
    j'ai bien un array contenant 5 array (4 de 10 éléments et un 5 ème de 5 éléments)

    j'ai ajouté des élements à la fin de ton tableau pour avoir 45 éléments.
    Je suppose que tu travailles bien sur du PHP5 pour utiliser le dernier paramètre facultatif sur true.
    Zend PHP5 Certification
    MySQL 4 Core Certification

  3. #3
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    j'ai dit 45 pour un exemple
    je code bien en php5.
    je vais essayer ton code, je te remercie

  4. #4
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut,
    voici un exemple qui fonctionne (enfin normalement ) avec n'importe quelle longueur.
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
     
    $activites = array(
    "ani",
    "fle",
    "ali",
    "hot",
    "inf",
    "aut",
    "bar",
    "lav",
    "bra",
    "lib",
    "che",
    "mod",
    "bou",
    "pec",
    "bea",
    "poi",
    "bij",
    "qui",
    "coi",
    "rap",
    "loi",
    "res",
    "cor",
    "ser",
    "div",
    "spo",
    "die",
    "tax",
    "dec",
    "tvh",
    "nui",
    "vid",
    "epi",
    "veh",
    "agi",
    "bat",
    "agv",
    "elc",
     
    );
     
    $total = count($activites);
    $length = 10;
    for($i = 0, $j = 0 ; $i < $total ; $i+=10, $j++)
    {
    if ( ($total - $i) < $length) 
    	$lenght = $total - $i;
    $tabActivites[$j] = array_slice($activites,$i,$length);
    print_r($tabActivites[$j]);
     
    }
     
    ?>
    ca me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Array ( [0] => ani [1] => fle [2] => ali [3] => hot [4] => inf [5] => aut [6] => bar [7] => lav [8] => bra [9] => lib )
    Array ( [0] => che [1] => mod [2] => bou [3] => pec [4] => bea [5] => poi [6] => bij [7] => qui [8] => coi [9] => rap )
    Array ( [0] => loi [1] => res [2] => cor [3] => ser [4] => div [5] => spo [6] => die [7] => tax [8] => dec [9] => tvh )
    Array ( [0] => nui [1] => vid [2] => epi [3] => veh [4] => agi [5] => bat [6] => agv [7] => elc )

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

Discussions similaires

  1. [Tableaux] Problème de tableau avec les strings
    Par roxxxy dans le forum Langage
    Réponses: 4
    Dernier message: 09/03/2007, 11h04
  2. Réponses: 2
    Dernier message: 15/12/2006, 14h22
  3. [Tableaux] Lister le tableau avec UNION => Problème
    Par tutomania dans le forum Langage
    Réponses: 4
    Dernier message: 25/09/2006, 19h20
  4. Réponses: 5
    Dernier message: 26/08/2006, 12h14
  5. [Tableaux] Trier un tableau comme avec ORDER BY DESC
    Par Anduriel dans le forum Langage
    Réponses: 28
    Dernier message: 08/12/2005, 18h50

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