suppression dans une chaîne

Task
Invité n'ayant pas de compte PHPfrance

13 sept. 2005, 21:57

Bonjour,

$chaine ='13,12,152,48,385';
$nombre = '152';

Mon problème est le suivant : je sais que ma variable $nombre est forcément dans $chaine, mais je ne peux pas savoir à quel endroit.
Or je dois supprimer '152' afin que $chaine soit égal à '13,12,'48'385'.

Avez-vous une idée svp ?
Merci à vous.
Task

Eléphant du PHP | 493 Messages

13 sept. 2005, 22:02

$position = strpos( $chaine, $nombre );
if ( $position !== false )
    echo '<b>', $nombre, '</b> commence au caractère <b>', $position, '</b>';

Task
Invité n'ayant pas de compte PHPfrance

13 sept. 2005, 22:11

Merci bien,
Je sais maintenant ou commence mon nombre mais comment puis-je le supprimer ?
Merci

Eléphant du PHP | 493 Messages

13 sept. 2005, 22:31

bah ...
$position = strpos( $chaine, $nombre );
if ( $position !== false )
{
    if ( isset( $chaine{ $position + strlen( (string)$nombre ) + 1 } ) )
    {
        if ( $chaine{ $position + strlen( (string)$nombre ) + 1 } === ',' )
            $replace = $nombre . ',';
    }
    elseif ( isset( $chaine{ $position - 1 } ) )
    {
        if ( $chaine{ $position - 1 } === ',' )
            $replace = ',' . $nombre;
    }
    else
    {
        $replace = $nombre;
    }
}

echo str_replace( $replace, '', $chaine );

Task
Invité n'ayant pas de compte PHPfrance

13 sept. 2005, 23:59

ça me donne toujours la même liste ?

Task
Invité n'ayant pas de compte PHPfrance

14 sept. 2005, 00:54

j'ai finalement réussi en bidouillant ton code.
Merci pour les infos.
Task

Eléphant du PHP | 493 Messages

14 sept. 2005, 08:37

un pti résolu ? ;)

Tho
Eléphant du PHP | 58 Messages

14 sept. 2005, 11:29

et comme ça :
<?php
$chaine ='13,12,152,48,385';
$nombre = '152';
echo substr_replace($chaine, '', strpos($chaine,$nombre), strlen($nombre));
?>