2013-11-14 25 views
0

我用自己的所有字母,數字和大多數符號創建了自己的數組,並給出了每個數字的例子,例如'a'= 19;如何將$ string字母/數字替換爲數組中的數字,例如$ newString = 19202122?php - 用int替換字符串

$string = 'abcd'; 

$stringList = array(
    19 => 'a', 
    20 => 'b', 
    21 => 'c', 
    22 => 'd', 
}; 

$newString = 19202122; 
+1

你嘗試過什麼? – GolezTrol

+0

你應該翻轉你的數組,''a'=> 19'等等。 – Barmar

+0

我真的很糟糕的PHP和試圖學習,我一直在尋找如何做到這一點,但我找不到任何... – Michael

回答

1

定義數組的其他方式,並使用strtr()功能是這樣的:

$string = 'abcd'; 

$stringList = array(
    'a' => 19, 
    'b' => 20, 
    'c' => 21, 
    'd' => 22, 
); 

$newString = strtr($string, $stringList); 
1

使用str_replace函數使用數組:

$letters = array('a','b','c','d'); 
$numbers = array(19,20,21,22); 
$newString = str_replace($letters,$numbers,$string); 
2

您可以使用函數str_replace函數,array_keys與array_values。 就像是:

$string = 'abcd'; 

$stringList = array(
    19 => 'a', 
    20 => 'b', 
    21 => 'c', 
    22 => 'd', 
}; 
$newString = str_replace(array_values($stringList), array_keys($stringList), $string); 
echo $newString; // 19202122 
+0

它會更可讀,也更有效,如果數組沒有定義的風格更換=>針。看看我的評論 – Martin

+0

@MartinCernac嗯,你是對的,但我想保留作者的陣列,我們不知道他是如何以及從哪裏得到它的。 – Videron

+1

那麼他提到,「他做了他自己的陣列」,所以我根據我的答案。無論如何,你的解決方案顯然更容易實現,因爲它是一個插入式。 – Martin