Salut,

J'ai des chaine qui se présentent ainsi:
1.1 (référence principale)
1.1.1 (sous référence)
1.1.2
...
1.1.12
Ce que que je veux, c'est incrémenter le nombre des sous références qui se situe à la position du dernier nombre de la référence principale
(dans mon cas, remplacer le 1 de la seconde position par 2)
Ce que je fais actuellement c'est ça:
<?php
$paramRef
= '1.1'; // Référence principale
$stringReference = '1.1.12'; // Sous-référence (exemple)
$arrayRefs = explode('.', $stringReference); // Récupération des nombres
$intPoints = substr_count($paramRef, '.'); // Nombre de points (pas pratique
$stringUpdatedRef = ''; // Initialisation
foreach($arrayRefs AS $intKey => $intRef) {
&#160;&#160;&#160;#On regarde ici si la clé n'est pas égal au nombre à incrémenter
&#160;&#160;&#160;#donc (longueur chaine principale) - (nb de points) - 1
&#160;&#160;&#160;# (-1 car le array comment à 0)
&#160;&#160;&#160;if ($intKey != (strlen($paramRef) - $intPoints - 1))
&#160;&#160;&#160;&#160;&#160;&#160;$stringUpdatedRef .= $intRef.'.';
&#160;&#160;&#160;else
&#160;&#160;&#160;&#160;&#160;&#160;$stringUpdatedRef .= ($intRef + 1).'.';
}
$stringUpdatedRef = substr($stringUpdatedRef, 0, strlen($stringUpdatedRef)-1); // Supression du point final
?>
Colorez votre code PHP sur les forums grâce à Developpez.com

J'espère que vous comprenez. En tout cas je trouve ça compliqué... Je suis presque sur qu'il y a une autre solution (notamment avec des strpos(), strstr()...) L'ennui c'est que je ne vois pas comment faire.
Si quelqu'un a une idée, merci.