---
title: "replaca siffror"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/124381-replaca-siffror"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Prime_66"
published: "2005-03-15T01:00:56.000Z"
updated: "2005-03-15T17:27:37.000Z"
replies: 7
views: 283
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/124381-replaca-siffror"
---

# replaca siffror

## #1 — Prime_66, 2005-03-15T01:00Z

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.

```php
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);
}
```

Permalänk: https://www.webforum.nu/p/124381

## #2 — Patrik81, 2005-03-15T02:44Z

Hejsan :)

Om koden du vill få ut ($realcode) är 45256 så fick jag följande kod att funka, nästan... :(

```php
$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

Permalänk: https://www.webforum.nu/p/1572842

## #3 — dectgap, 2005-03-15T08:40Z

Prova med

```php
$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);
```

Permalänk: https://www.webforum.nu/p/1572893

## #4 — Peeer, 2005-03-15T08:53Z

> **dectgap skrev:**
>
> Prova med
>
>
> ```php
> $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
<?php
$thecode = '12345';
$replacements = array('1'=>'4', '2'=>'5', '3'=>'2', '4'=>'7', '5'=>'8', '6'=>'0');
$realcode = strtr($thecode, $replacements);
echo $realcode;
?>
```

Permalänk: https://www.webforum.nu/p/1572897

## #5 — dectgap, 2005-03-15T08:55Z

> **Peeer skrev:**
>
> Nästan

:r
Det blir så lätt fel vid copy-paste, är det enda försvaret jag har.

Permalänk: https://www.webforum.nu/p/1572900

## #6 — Prime_66, 2005-03-15T11:43Z

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:

```php

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

Permalänk: https://www.webforum.nu/p/1572983

## #7 — dectgap, 2005-03-15T12:08Z

> **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':

```php
$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.

Permalänk: https://www.webforum.nu/p/1572993

## #8 — Prime_66, 2005-03-15T17:27Z

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å..

Permalänk: https://www.webforum.nu/p/1573163

---

Tråden på webben: https://www.webforum.nu/amne/php/124381-replaca-siffror
