2013-11-14 4 views
0

Я создал свой собственный массив со всеми буквами, числами и большинством символов и дал каждому номер для примера 'a' = 19; Как заменить строковые буквы/цифры $ на числа в массиве, например $ 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 и пытаюсь учиться, я искал, как это сделать, но я не мог найти anyting ... – 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

Смежные вопросы