голову уже сломал
есть массив $arr = array('a'=>'01','A'=>'02','g'=>'03','e'=>'04','c'=>'05','d'=>'06','V'=>'07','O'=>'08','K'=>'09','X'=>'11','F'=>'12','T'=>'13','h'=>'14','n'=>'15','B'=>'16','Q'=>'17','M'=>'18','t'=>'19');
есть значение
$str = '204114214206109209209';
Делал так но не работает как надо
$str = strtr($str, array_flip($arr));
Проблема в том что нужно чтобы он заменял в тексте только цифры из 3 только 2,3, т.е. вот так
2 04 1 14 2 14 2 06 1 09 2 09 2 09
на выходе должно быть так
2 e 1 h 2 h 2 d 1 K 2 K 2 K
возможно тут надо регуляркой делать замену, но вот с ней у меня беда(
возможно тут надо регуляркой делать замену
Можно просто в цикле собрать строку для передачи в strtr():
$arr = array(
'a' => '01',
'A' => '02',
'g' => '03',
'e' => '04',
'c' => '05',
'd' => '06',
'V' => '07',
'O' => '08',
'K' => '09',
'X' => '11',
'F' => '12',
'T' => '13',
'h' => '14',
'n' => '15',
'B' => '16',
'Q' => '17',
'M' => '18',
't' => '19'
);
$str = '204114214206109209209';
$new = '';
foreach (str_split($str) as $i => $char) {
$new .= --$i % 3 ? "$char " : $char;
}
$str = strtr($new, array_flip($arr));
echo $str;
Результат:
2 e 1 h 2 h 2 d 1 K 2 K 2 K
$arr = array('a'=>'01','A'=>'02','g'=>'03','e'=>'04','c'=>'05','d'=>'06','V'=>'07','O'=>'08','K'=>'09','X'=>'11','F'=>'12','T'=>'13','h'=>'14','n'=>'15','B'=>'16','Q'=>'17','M'=>'18','t'=>'19');
$str = '204114214206109209209';
$arr_str = str_split($str, 3);
$result = "";
foreach($arr_str as $str){
$num = (int)$str[0];
$str = strtr(substr($str, 1), array_flip($arr));
$result .= "{$num}{$str}";
}
var_dump($result);
Вывод :
string(14) "2e1h2h2d1K2K2K"
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Прошу помощи с выбором алгоритма для решения задачи, мне необходим только алгоритм
Что лучше в плане быстродействия: вызывать члены класса, наследованные из другого класса, или вызывать члены класса, полученные из хранящегося...
Найти все простые числа в диапазоне от А до В (1 <= A <= B <= 10^12 ), при условии, что В - А >= 10 ^ 6Уже 4 день ломаю над этим голову