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 :

Fonction sur les tableaux


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Immobilier
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Immobilier

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Par défaut Fonction sur les tableaux
    Salut à tous,

    Je rencontre une difficulté mineure.

    En resumé, j'ai un tableau existant contenant 40 valeurs . je souhaite crée un deuxieme tableau à partir du premier qui reunirait les valeurs deux par deux et qui contiendrait donc 20 valeurs.

    Voici mon code

    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
     
     
    <?php
     
     
     
    $a = array('DC', '00', '04', '01','2C', '01', '5E' ,'01', '90', '01', 'F4', '01', '58', '02', 'BC' , '02', '52', '03', 'E8', '03', 'BO', '04', 'DC', '05', '6C', '07', '60', '09', '54', '0B', '48', '0D' , '04', '10', 'EC', '13', '00', '19', 'A4', '1F');
     
     
    echo 'le tableau initial comprend '.count($a).' valeurs. <BR />';
     
    foreach ($a as $value) {
     
    	echo $value.'<BR />';
     
    }
     
     
     
    $b = array ();
    for ($i=0,$s=count($a);$i<$s;$i++){
     
     $b[]=$a[$i] .' '.$a[$i++];
     
    }
     
    echo ' Le tableau correspondant  compte '.count($b).' valeurs.<BR />';
     
    foreach ($b as $value) {
     
    	echo $value.'<BR />';
     
    }
     
    ?>
    Or le nouveau tableau ainsi crée est faux. Merci de m'expliquer en quoi réside mon erreur ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    L'incrémentation doit être avant l'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $b[]=$a[$i] .' '.$a[++$i];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Immobilier
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Immobilier

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Par défaut
    c'etait aussi con ;

    Peux tu juste expliciter en langage pour bebette ?

    car pour moi ça donnait

    $b [ valeur 0] = $a[valeur0]. ' '.$a[valeur1] ;


    et pour ajouter un peu de difficultés, est il possible d'inverser les valeurs quand on les recupere deux par deux genre

    $b[valeur0] = $a[valeur1].' '.$a[valeur2];

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    plus rapide :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $aa	= array_chunk( $a, 2 );
     
    foreach( $aa as $aaa)
    {
    	$b[]	= implode( ' ', $aaa );
    }
    On obtient :
    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
    Array
    (
        [0] => DC 00
        [1] => 04 01
        [2] => 2C 01
        [3] => 5E 01
        [4] => 90 01
        [5] => F4 01
        [6] => 58 02
        [7] => BC 02
        [8] => 52 03
        [9] => E8 03
        [10] => BO 04
        [11] => DC 05
        [12] => 6C 07
        [13] => 60 09
        [14] => 54 0B
        [15] => 48 0D
        [16] => 04 10
        [17] => EC 13
        [18] => 00 19
        [19] => A4 1F
    )

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Peux tu juste expliciter en langage pour bebette ?
    $i++ retourne la valeur actuelle de $i puis l’incrémente
    ++$i incrémente $i puis retourne la nouvelle valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $i = 1;
    echo $i++; // 1
    echo $i; // 2
    echo ++$i; // 3
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    en une seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $x = array_map(function($v) { return implode(' ', $v); }, array_chunk($a, 2));
    si les espaces ne sont pas nécessaires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $x = array_map('implode', array_chunk($a, 2));

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

Discussions similaires

  1. fonction prédéfinie sur les tableaux
    Par yacin87 dans le forum Débuter
    Réponses: 1
    Dernier message: 01/03/2010, 19h18
  2. Réponses: 2
    Dernier message: 01/05/2004, 21h15
  3. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00
  4. [LG]Symbole # (dièse) et fonctions sur les chaînes
    Par James64 dans le forum Langage
    Réponses: 6
    Dernier message: 24/03/2004, 14h19

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