Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2012, 18h19   #1
Futur Membre du Club
 
Inscription : avril 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 105
Points : 18
Points : 18
Par défaut supprimer occurence tableau

Bonjour,

Je veux supprimer certaine valeurs dans des chaines de caractères selon des conditions très précises.
Chaque caractère génère une autre valeur entre | |
Je précise que je ne peux pas changer ces chaines de caractère, faut que je fasse avec leurs formats :'(

p,B1 |5| |4| A5 , A7, A10 |6| |9| |11|

p,B5,B7 |1| |2,3,4| |5| A5 , A11 |4| |5|

p, B7, B8, B9 , B10 , B11 || || || || || || A9 , A25 |8| |17|

Je veux supprimer le début de chaque ligne selon l'algo suivant:
-compter le nombre d occurence séparé par une virgule AVANT le premier | et supprimer autant de couple de || quoiquil y est a l'intérieur
-sauvergarder le reste de la ligne

Dans mes exemples , ce qui est en rouge est ce que je veux supprimer. Et le reste est ce que je veux sauvegarder.

Comment dois je coder ce tronquage ? L'algo me parait un peu complexe, je viens de perdre mon aprem à essayer :p

Je vous remercie de toute aide apportée..
xavioche77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 19h00   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
elles sortent d’où les chaines ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 19h41   #3
Futur Membre du Club
 
Inscription : avril 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 105
Points : 18
Points : 18
Elles sont la résultante d'une succession de requêtes, et d'un mécanisme de drag and drop. Elle m'indique si un élément est déplacé et où il se trouve ( tout en m'indiquant la hiérarchie père fils des éléments entre eux. J'essaye donc de parser cette chaine en l'état.

Merci de votre temps
xavioche77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 00h09   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonsoir,

Voici une fonction qui devrait améliorer ton début d'année :
Code :
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
<?php
 
$str = "p, B7, B8, B9 , B10 , B11 || || || || || ||  A9 , A25 |8| |17|";
//$str = "p,B5,B7 |1| |2,3,4| |5| A5 , A11 |4| |5|";
 
$len = strlen($str);
$nbComma  = 0;
$nbPipe   = 0;
$nbValues = 0;
 
for($i = 0; $i < $len; ++$i) {
   $char = $str[$i];
   if ($char === '|') {
      if ($nbPipe === 0) {
         $nbValues = ($nbComma + 1) * 2;
      }
      if (++$nbPipe === $nbValues) {
         $toKeep = trim(substr($str, $i + 1));
         break;
      }
   }
   else
   if ($char === ',') {
      ++$nbComma;
   }
}
 
echo $toKeep;
 
?>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/01/2012, 09h40   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par xavioche77 Voir le message
Elles sont la résultante d'une succession de requêtes, et d'un mécanisme de drag and drop. Elle m'indique si un élément est déplacé et où il se trouve ( tout en m'indiquant la hiérarchie père fils des éléments entre eux. J'essaye donc de parser cette chaine en l'état.

Merci de votre temps
pourquoi ne pas avoir fait un arbre en json ? c'est de la bidouille ton format
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 10h55   #6
Futur Membre du Club
 
Inscription : avril 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 105
Points : 18
Points : 18
Le JSON 'est pas une mauvaise idée, je le noterai pour la suite pr optimiser tout cela .
Je ne comprend pas tout dans l'algorithme de rawsrc.
C'est pratiquement ce qu'il me faut mais je cherche à remplacer la chaine d'entrée;
p,B1 |5| |4| A5 , A7, A10 |6| |9| |11|

par

p,B1 |5|4| A5 , A7, A10 |6|9|11|

c'est à dire que je cherche donc tjs à supprimer la partie p,B1 |5|4| mais en considérant que les éléments ne sont plus entouré de |élément1| |élément2| mais plutôt de la forme |élément1|élément2|.
De ce que je comprend la fonction devrait déjà faire ce travail ou je suis vraiment à l'ouest ? :p
xavioche77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h23   #7
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par xavioche77 Voir le message
p,B1 |5| |4| A5 , A7, A10 |6| |9| |11|

p,B5,B7 |1| |2,3,4| |5| A5 , A11 |4| |5|

p, B7, B8, B9 , B10 , B11 || || || || || || A9 , A25 |8| |17|

Je veux supprimer le début de chaque ligne selon l'algo suivant:
-compter le nombre d occurence séparé par une virgule AVANT le premier | et supprimer autant de couple de || quoiquil y est a l'intérieur
-sauvergarder le reste de la ligne

Dans mes exemples , ce qui est en rouge est ce que je veux supprimer. Et le reste est ce que je veux sauvegarder.
C'est ce que fait exactement mon code.

Citation:
Envoyé par xavioche77 Voir le message
C'est pratiquement ce qu'il me faut mais je cherche à remplacer la chaine d'entrée;
p,B1 |5| |4| A5 , A7, A10 |6| |9| |11|

par

p,B1 |5|4| A5 , A7, A10 |6|9|11|

c'est à dire que je cherche donc tjs à supprimer la partie p,B1 |5|4| mais en considérant que les éléments ne sont plus entouré de |élément1| |élément2| mais plutôt de la forme |élément1|élément2|.
Ce n'est pas pareil que le besoin dans le premier post.
Faut modifier légèrement le code de la fonction.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h48   #8
Invité régulier
 
Inscription : décembre 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 17
Points : 8
Points : 8
oui oui j'essaye, je cherche
tryptan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 12h12   #9
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Pour gérer ce genre de chaine :
Code :
$str = "p,B1, B2 |5|4|5,4,2| A5 , A7, A10 |6|9|11|";
il suffit juste de remplacer la ligne 15 de mon code par :
Code :
$nbValues = $nbComma + 2;
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 12h47   #10
Futur Membre du Club
 
Inscription : avril 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 105
Points : 18
Points : 18
voui, merci beaucoup.
Je vais vérifier la cohérence du tout.
Et dès que j'ai un moment, j'irai voir du coté du json pour voir comment je peux intégrer le tout.
Si cela pourra aider des gens mais j'en doute parce que c'est de la bidouille, la chaine de caractère complexe était issu d'une fonction JS qui renvoyait la position des éléments déplacés en gardant une hiérarchie de père filssi il y en avait une.

http://devheart.org/articles/jquery-...drag-and-drop/

Je vous remercie tous
xavioche77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h04.


 
 
 
 
Partenaires

Hébergement Web