пытаюсь сделать таблицу замен. например, чтобы abaabb преобразовалось в 3132
ниже написал, то что пока сделал:
<?php
//исходные данные
$str="abaabb";
$arr=array(
"a"=>array(1),
"b"=>array(2),
"ab"=>array(3),
);
//надо что-то сделать, чтобы получить массив $arr2=array(ab,a,ab,b)
$i=0;
foreach($arr as $key => $val){
$arr2[$i]=...........;
$i++;
}
//проверка результата
foreach($arr2 as $key2 => $val2)
echo($key2.' '.$val2."<br>");
?>
запутался как это сделать.. толи с pregmatch или ststr что-то сделать.. но не выходит.
Спустя 24 минуты, 45 секунд (12.03.2012 - 13:35) Winston написал(а):
$str="abaabb";
$arr=array(
"a"=>1,
"b"=>2,
"ab"=>3
);
echo strtr($str, $arr);
Спустя 2 часа, 2 минуты, 9 секунд (12.03.2012 - 15:37) тс написал(а):
Цитата (Winston @ 12.03.2012 - 10:35) |
$str="abaabb"; |
спасибо!
правда подобное надо сделать с многомерным массивом..
//исходные данные
$str="abaabb";
$arr=array(
"a"=>array("a1","a2","a3"),
"b"=>array("b1","b2","b3"),
"ab"=>array("ab1","ab2","ab3"),
);
т.е. результат получить такой
$arr2=array(ab,a,ab,b)
а уже дальше в зависимости от разных условий выводить например
ab1,a3,ab2,b1 или ab4,a2,ab1,b2 и т.д... но это уже потом разбираться буду. а вот как создать такой массив..
сейчас возникает ошибка
The second argument is not an array in
$a=strtr($str, $arr);
print_r $a;