[PHP] Zamiana fraz, IIIC na 2C itp.

0

Witam, chciałbym zamienić "IIIC" na "2C".
Oto kod :

$klasa =  str_replace("I A","1A",$klasa);
$klasa =  str_replace("I B","1B",$klasa);
$klasa =  str_replace("I C","1C",$klasa);
$klasa =  str_replace("I D","1D",$klasa);
$klasa =  str_replace("I E","1E",$klasa);
$klasa =  str_replace("I F","1F",$klasa);
$klasa =  str_replace("I G","1G",$klasa);
$klasa =  str_replace("I H","1H",$klasa);

$klasa =  str_replace("II A","2A",$klasa);
$klasa =  str_replace("II B","2B",$klasa);
$klasa =  str_replace("II C","2C",$klasa);
$klasa =  str_replace("II D","2D",$klasa);
$klasa =  str_replace("II E","2E",$klasa);
$klasa =  str_replace("II F","2F",$klasa);
$klasa =  str_replace("II G","2G",$klasa);
$klasa =  str_replace("II H","2H",$klasa);

$klasa =  str_replace("III A","3A",$klasa);
$klasa =  str_replace("III B","3B",$klasa);
$klasa =  str_replace("III C","3C",$klasa);
$klasa =  str_replace("III D","3D",$klasa);
$klasa =  str_replace("III E","3E",$klasa);
$klasa =  str_replace("III F","3F",$klasa);
$klasa =  str_replace("III G","3G",$klasa);
$klasa =  str_replace("III H","3H",$klasa);

Kod niestety nie działa prawidłowo, "IIIC" zamienia na "II1C". Prosze o pomoc

0

Znalazłem rozwiązanie, może komuś się przyda....

$klasa = " " . $klasa;
$klasa =  str_replace(" I A"," 1A",$klasa);
$klasa =  str_replace(" I B"," 1B",$klasa);
$klasa =  str_replace(" I C"," 1C",$klasa);
$klasa =  str_replace(" I D"," 1D",$klasa);
$klasa =  str_replace(" I E"," 1E",$klasa);
$klasa =  str_replace(" I F"," 1F",$klasa);
$klasa =  str_replace(" I G"," 1G",$klasa);
$klasa =  str_replace(" I H"," 1H",$klasa);

$klasa =  str_replace(" II A"," 2A",$klasa);
$klasa =  str_replace(" II B"," 2B",$klasa);
$klasa =  str_replace(" II C"," 2C",$klasa);
$klasa =  str_replace(" II D"," 2D",$klasa);
$klasa =  str_replace(" II E"," 2E",$klasa);
$klasa =  str_replace(" II F"," 2F",$klasa);
$klasa =  str_replace(" II G"," 2G",$klasa);
$klasa =  str_replace(" II H"," 2H",$klasa);

$klasa =  str_replace(" III A"," 3A",$klasa);
$klasa =  str_replace(" III B"," 3B",$klasa);
$klasa =  str_replace(" III C"," 3C",$klasa);
$klasa =  str_replace(" III D"," 3D",$klasa);
$klasa =  str_replace(" III E"," 3E",$klasa);
$klasa =  str_replace(" III F"," 3F",$klasa);
$klasa =  str_replace(" III G"," 3G",$klasa);
$klasa =  str_replace(" III H"," 3H",$klasa);
$klasa = Trim($klasa);
0

wystarczyło tylko zmienić kolejność wykonywania funkcji str_replace, a tak btw. to można prościej:

$klasa=str_replace("III ", 3, $klasa);
$klasa=str_replace("II ", 2, $klasa);
$klasa=str_replace("I ", 1, $klasa);

0

brzydkie mieszanie typów (chociaż PHP wszystko łyknie), poza tym można to zrobić jednym wywołaniem funkcji:

$klasa = strtr($klasa, array(
 'III ' => '3',
 'II ' => '2',
 'I ' => '1',
 ));

1 użytkowników online, w tym zalogowanych: 0, gości: 1