$array = array(); $naw_arr = array( 0 => "Керчь:в Керчи", 1 => "Киев:в Киеве", ); $cat['titleh1'] = "Аренда недвижимости Керчь"; foreach ($naw_arr as $line) { $array = explode(":", $line); $array[0] = trim($array[0]); $array[1] = trim($array[1]); $str = str_replace($array[0], $array[1], $cat['titleh1'], $count); if ($count > 0) { $cat['titleh1'] = $str; break; } } 

It should replace "Rental Property Kerch" to "Rental Property in Kerch". But it does not replace, although trim(); added just in case trim(); And if I swap lines in $naw_arr , then it works. What is wrong?

  • and here in the code $naw_arr ? - ArchDemon
  • If you are given an exhaustive answer, mark it as correct (a daw opposite the selected answer). - Nicolas Chabanovsky

1 answer 1

Without unnecessary heaps, it works:

 <?php $naw_arr = array( 0 => "Керчь:в Керчи", 1 => "Киев:в Киеве", ); $cat['titleh1'] = "Аренда недвижимости Керчь"; foreach ($naw_arr as $line) { $array = explode(":", $line); $str = str_replace($array[0], $array[1], $cat['titleh1'], $count); if ($count > 0) { $cat['titleh1'] = $str; break; } } echo var_dump($cat); 

Result:

 array(1) { ["titleh1"]=> string(51) "Аренда недвижимости в Керчи" } 
  • Understood. Thank. - kerch