chaine de caractères et tableau..

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : chaine de caractères et tableau..

Re: chaine de caractères et tableau..

par stopher » 23 mars 2010, 21:43

Salut ,

Si ta chaine est constante , dans les amplacements de valeurs , tu peux tres bien utiliser la fonction explode()

Tu l'utilises dans un premier temps comme ceci
$tChaines = explode("/",$chaine);
Ainsi tu te retrouve avec un tableau avec une entrée par "suite"

Il ne te reste plus qu'à parcourir ton tableau et découper chaque chaine par les "," pour les mettre en tableau associatif
ex:
$curseur = 0;
foreach( $tChaines AS &$suite  ){
    $tVal = explode(',',$suite);
    $tableau[$curseur]['Num'] = $tVal[0];
    $tableau[$curseur]['Id'] = $tVal[1];
    // ... 
}
Te voilà avec tes données structurées !

Edit : tu peux aussi utiliser la fonction array_fill_keys() pour remplir ton tableau associatif exemple :
//initialise le curseur
$curseur = 0;
//initialise les clef dans l'ordre
$keys = array('Num', 'Id');

//explore chaque suite
foreach( $tChaines AS &$suite  ){

    //découpe la suite
    $tVal = explode(',',$suite);
    //rempli le tableai associatif
    $tabFinal = array_fill_keys($keys, $tVal);
    
}
ch.

chaine de caractères et tableau..

par Sebast076 » 23 mars 2010, 20:51

Bonjour,

voici mon problème.

j'ai des chaines de caractères sous cette forme :

Code : Tout sélectionner

0,510,0,0,,1,0,0,0,0,0,-1088699593,0,0,0,0,0/1,2035,0,0,,1,0,-1,0,0,0,549801271,0,0,0,0,0/[etc.....]
et je voudrai faire en sorte de stocké les différents éléments de cette chaine dans un tableau comme suis :
$tableau[0]['Num'] = 0
$tableau[0]['Id'] = 510
etc.. jusqu'au séparateur '/'
et qu'après ce séparateur les données soit stockées dans $tableau[1]['Nom_Colonne']

jusqu'à présent j'ai fait ceci :
preg_match_all("/([0-9,-]*)\//i", $inventory, $matches);
qui me donne comme résultat :

Code : Tout sélectionner

Array ( [0] => Array ( [0] => 0,2552,0,0,,356,0,-1,0,0,0,878540022,0,0,0,0,0/ [1] => 1,2823,0,0,,2,0,-1,0,0,0,67835230,0,0,0,0,0/ [2] => 2,21037,0,0,,1378,0,-1,0,0,0,-1230420462,0,0,0,0,0/ [3] => 4,3221,0,0,,1,0,-1,0,0,0,-586787955,0,0,0,0,0/ [4] => 5,2026,0,0,,9483,0,-1,0,0,0,-359549570,0,0,0,0,0/ ) [1] => Array ( [0] => 0,2552,0,0,,356,0,-1,0,0,0,878540022,0,0,0,0,0 [1] => 1,2823,0,0,,2,0,-1,0,0,0,67835230,0,0,0,0,0 [2] => 2,21037,0,0,,1378,0,-1,0,0,0,-1230420462,0,0,0,0,0 [3] => 4,3221,0,0,,1,0,-1,0,0,0,-586787955,0,0,0,0,0 [4] => 5,2026,0,0,,9483,0,-1,0,0,0,-359549570,0,0,0,0,0 ) )
Mais maintenant je bloque sur la façon de procéder pour pouvoir récupérer toutes les données de $matches[1] et les mettre dans mes tableau ...

Quelqu'un pourrait il m'aider s'il vous plait ?