2010-08-27 6 views
0

Je dois remplacer un caractère dans une chaîne.Remplacement de caractère le plus rapide dans la chaîne

$s1='123456789'; 
$s2='abcdefghi'; 

$p=4; // position of char in $s1 to use for replacing (0 is first char) 

$s2 = ???? ; // code 

En fin de $ s2 doit être '' abcd5fghi

Quelle serait la méthode la plus rapide?

+0

Etes-vous sûr que vous avez besoin de la méthode la plus rapide? Juste assez rapide ne vous conviendrait pas? –

+0

En regardant les réponses le moyen le plus rapide est parfois le meilleur moyen. – Yehonatan

Répondre

6

Si vous avez seulement des caractères SBCS:

$s2[$p] = $s1[$p]; 

Sinon, en cas de caractères multi-octets, vous aurez probablement besoin d'utiliser mb_substr:

$s2 = mb_substr($s2, 0, $p).mb_substr($s1, $p, 1).mb_substr($s2, $p+1); 
+0

J'apprends quelque chose de nouveau. Merci de m'avoir fait gagner du temps en écrivant la version longue de la merde. – Yehonatan

Questions connexes