PHP aynı anda (birbirleri ile) 2 dizeleri nasıl değiştirilir

1 Cevap php

Ne yapmaya çalışıyorum çok basit, ama tercihen php yerleşik FNS kullanarak, en verimli şekilde bunu yapmak için arıyorum.

$str = '1234';
echo replace_function(array('1','3'),array('3','1'),$str);

// output: 3214

str_replace, preg_replace eşleşme dizeleri yerine, diziler geçer anlamına gelir, 1214 yılında neden olacaktır. Ben aynı anda "anahtarı" bu iki (veya daha fazla) dizeleri için bir çözüm arıyorum.

herhangi bir fikir?

1 Cevap

<?php

$subject = '1234';
$result = preg_replace('/(1)(2)(3)(4)/si', '$3$2$1$4', $subject);
var_dump($result);

?>

Bu tür '/ (\ d) (\ d) (\ d) (\ d) /' gibi daha genel bir şey için desen değiştirebilirsiniz.