Заменить второй экземпляр строки - PullRequest
3 голосов
/ 11 марта 2010

Мне просто интересно, как я мог бы заменить второй экземпляр строки внутри строки в php следующим образом:

a - b - c

Там, где после второго «-» будет добавлен дополнительный пробел, но только если он найдет 2.

Ответы [ 4 ]

7 голосов
/ 11 марта 2010
$finds = explode('-', "a - b - c");
if (count($finds) == 3) {
  $finds[2] = " {$finds[2]}";
}

$finds = implode('-', $finds);
1 голос
/ 18 мая 2017
**// User Function to replace string by Occurance**

function str_occ_replace($from,$to,$subject,$occ){
    $myArray = explode($from,$subject);
    print_r($myArray);
    $mystring = '';
    $index = 1;
    foreach($myArray as $ele){

        if($index !== $occ AND $index !== $arraySize)
            $mystring .= $ele.$from;
        else if($index !== $arraySize)
            $mystring .= $ele.$to;
        $index++;
    } // End of Foreach
    return $mystring;
} // End of Function
1 голос
/ 11 марта 2010
$str ="a - b - c";    
if (substr_count($str,"-")>2){
  print preg_replace("/^(.*)-(.*)-(.*)/","\\1-\\2- \\3",$str);
}
0 голосов
/ 11 марта 2010

Подстрока строки, начинающаяся с индекса первого тире с использованием strpos, затем выполните str_replace для остальной части строки. Соедините их вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...