Prime_66Medlem sedan aug. 2004290 inlägg Jag har en sträng med siffrorna 12356. Jag vill att ettan ska bytas ut mot en 4, 2 mot en 5, 3 mot 2 osv. Följande kod borde väl kunna funka? Men det gör den inte. Den byter vissa av siffrorna fel helt enkelt.
for ($t=0; $t<=5; $t++){
$index = substr($thecode,$t,1);
$digits = array(1, 2, 3, 4, 5, 6);
$newdigits = array(4, 5, 2, 7, 8, 0);
$realcode.= str_replace($digits, $newdigits, $index);
}
Patrik81Medlem sedan okt. 2001538 inlägg Hejsan :)
Om koden du vill få ut ($realcode) är 45256 så fick jag följande kod att funka, nästan... :(
$thecode = 12356;
for ($t=0; $t<=5; $t++)
{
$index = substr($thecode,$t,1);
$digits = array(1, 2, 3, 4, 5, 6);
$newdigits = array(4, 5, 2, 7, 8, 0);
$realcode .= str_replace($digits[$t], $newdigits[$t], $index);
}
echo($realcode);
/r: Ursäkta mig, såg just att det borde bli 80 på slutet... vilket inte verkar hända... så det här var ingen bra lösning alls :(
MVH Patrik
dectgapMedlem sedan sep. 20021 655 inlägg Prova med
$thecode = '12345';
$index = substr($thecode,$t,1);
$replacements = array('1'=>'4', '2'=>'5', '3'=>'2', '4'=>'7', '5'=>'8', '6'=>'0');
$realcode.= strtr($digits, $newdigits, $index);
PeeerMedlem sedan mars 20025 907 inlägg
dectgap skrev:
Prova med
$thecode = '12345';
$index = substr($thecode,$t,1);
$replacements = array('1'=>'4', '2'=>'5', '3'=>'2', '4'=>'7', '5'=>'8', '6'=>'0');
$realcode.= strtr($digits, $newdigits, $index);
Nästan
<?php
$thecode = '12345';
$replacements = array('1'=>'4', '2'=>'5', '3'=>'2', '4'=>'7', '5'=>'8', '6'=>'0');
$realcode = strtr($thecode, $replacements);
echo $realcode;
?>
dectgapMedlem sedan sep. 20021 655 inlägg
Peeer skrev:
Nästan
:r
Det blir så lätt fel vid copy-paste, är det enda försvaret jag har.
Prime_66Medlem sedan aug. 2004290 inlägg Japp, thanx. Det funkar. Men en sak som var lustig var att det funkade bara man inte ersatte med siffror med min första metod. så här:
for ($t=0; $t<=5; $t++){
$index = substr($thecode,$t,1);
$digits = array(1, 2, 3, 4, 5, 6);
$newdigits = array("fyra", "femma", "tvåa", "sjua", "åtta", "nolla");
$realcode.= str_replace($digits, $newdigits, $index);
}
fast då fick ju koden i bokstavsform vilket inte var meningen..men men,,nu ere löst iaf :birp
dectgapMedlem sedan sep. 20021 655 inlägg
Prime_66 skrev:
Japp, thanx. Det funkar. Men en sak som var lustig var att det funkade bara man inte ersatte med siffror med min första metod.
Problemet är att str_replace även försöker ersätta ersatta tecken.
T ex skulle följande konstruktion göra om alla vokaler till 'q':
$search = array(('a','o','u','å','e','i','y','ä','ö');
$replace = array('o', 'u', 'å', 'e', 'i', 'y', 'ä', 'q');
$str = str_replace($search, $replace, $str);
strtr låter redan ersättningarna vara.
Prime_66Medlem sedan aug. 2004290 inlägg ja, verkar så. men det var ju därför jag hade det i en for loop så den tog tecken per tecken. så att den inte skulle kunna ersätta varje plats mer än en gång. fast den gjorde ju det ändå..