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] Découpage de chaîne


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Par défaut [Tableaux] Découpage de chaîne
    Bonjour,
    j'ai une chaine qui ressemble a ceci :

    $data = nom&&prenom&&adresse&&email&&password&&telephone&&fax&&
    nom2&&prenom2&&adresse2&&email2&&password2&&telephone2&&fax2
    etc...

    cette chaine comprend 21 entrees (dans cet exemple j'en ai seulement mis 7) par ligne

    Je souhaite recuperer cette chaine dans un tableau afin d'avoir acces a chacun des email et password.

    Voici le script que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $tempa = explode('&&', $data);
    $total = count($tempa);
    for ($i=0;$i<$total;$i++)
    {
    	$c = $i % 21;
    	if ($c == 0)
    	{
    		$temps[] = $tempa[$i];
    	}
    }
    print_r ($temps);
    le i % 21 ne fonctionne pas... connaissez vous une fonction avec les tableaux qui permette de faire un d2coupage correct ?

    merci !

  2. #2
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    ton probleme est dans cette partie du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $c = $i % 21;
    if ($c == 0)	{
    	$temps[] = $tempa[$i];
    }
    // $temps[] = $tempa[$i]; ne s'execute qu'une seul fois (pour $i=0) seulement
    // parceque $i % 21 est tjs !=0 pour $i=1..20
    explode fait l'affaire tu n'as pas besoin d'une autre fonction. tu peux verifier en imprimant $tempa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    $tempa = explode('&&', $data);
    print_r($tempa); // Array ( [0] => nom [1] => prenom [2] => adresse [3] => email [4] => password [5] => telephone [6] => fax [7] => nom2 [8] => prenom2 [9] => adresse2 [10] => email2 [11] => password2 [12] => telephone2 [13] => fax2 )
    ...

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Par défaut
    ok, mais a partir de ce resultat, comment recuperer par exemple un tableau comme celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array("nom1#password1","nom2#password2", ......)
    c'est pour cela que je voulait faire appel a la fonction modulo...

  4. #4
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    tu peux faire chaque entrée dans un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $tempa = explode('&&', $data);
    $total = count($tempa);
    $j =0;
    for ($i=0;$i<$total;$i++)
    {
    	if ($i % 7 == 0) $j+=1;   // pour une entrée a 7 elements.
    	$temps[$j][] = $tempa[$i];
     
    }
    print_r ($temps);
    /*Array ( [1] => Array ( [0] => nom [1] => prenom [2] => adresse [3] => email [4] => password [5] => telephone [6] => fax ) 
             [2] => Array ( [0] => nom2 [1] => prenom2 [2] => adresse2 [3] => email2 [4] => password2 [5] => telephone2 [6] => fax2 ) 
    ) */

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Par défaut ça marche pas en faite...
    Je ne sais pas, mais si tu utilises des && comme séparateurs, je pense que tu peux utiliser:
    parse_url()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $data = 'nom&&prenom&&adresse&&email&&password&&telephone&&fax&&nom2&&prenom2&&adresse2&&email2&&password2&&telephone2&&fax2';
     
    var_dump(parse_url($data, PHP_URL_QUERY)); // je pense pas que le PHP_URL_QUERY soit nécessaire.
     
    ?>
    J'espère que ça marche, mais je pense que c'est faisable avec cette fonction...

    édite: ça marche pas!!!! teste même pas désolé.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    hello,

    a priori la version d'amika devrait fonctionner. Sinon on peut simplifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tab1 = explode( '&&' , $chaine );
    $tab2 = array_chunk( $tab1 , 21 );
    à vérifier

  7. #7
    Membre émérite
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Par défaut
    Citation Envoyé par juJuv51
    Je ne sais pas, mais si tu utilises des && comme séparateurs, je pense que tu peux utiliser:
    parse_url()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $data = 'nom&&prenom&&adresse&&email&&password&&telephone&&fax&&nom2&&prenom2&&adresse2&&email2&&password2&&telephone2&&fax2';
     
    var_dump(parse_url($data, PHP_URL_QUERY)); // je pense pas que le PHP_URL_QUERY soit nécessaire.
     
    ?>
    J'espère que ça marche, mais je pense que c'est faisable avec cette fonction...

    édite: ça marche pas!!!! teste même pas désolé.
    De toute les facons, la méthode la plus simple est toujours la meilleure.
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/10/2007, 14h39
  2. Réponses: 4
    Dernier message: 19/10/2007, 09h46
  3. [Tableaux] sur les chaînes (strstr, substr, etc.)
    Par tigzirt dans le forum Langage
    Réponses: 1
    Dernier message: 09/05/2006, 11h17
  4. [Tableaux] Opération sur chaîne de caractères
    Par kespy13 dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2006, 14h32
  5. Réponses: 13
    Dernier message: 17/10/2005, 15h32

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