Помогите преобразовать строку в нужные выражения.

dim-dem

Новичок
Помогите преобразовать строку в нужные выражения.

Есть такая строка: a1,a2,a3,a4,a5
Помогите преобразовать ее в такие выражения:

1) (`a1` , `a2` , `a3` , `a4` , `a5`) VALUES (`$a1` , `$a2` , `$a3` , `$a4` , `$a5`)

2) a1='$a1' , a2='$a2' , a3='$a3' , a4='$a4' , a5='$a5'

3) $a1,$a2,$a3,$a4,$a5
 

Demiurg

Guest
а в чем собственно встала проблема ?
 

Макс

Старожил PHPClub
начнем с простого:
3. к строке спереди присоединяешь символ '$' а все запятые меняешь на '$,'
По этому алгоритму код написать сможешь ?
 

dim-dem

Новичок
Maxim Matyukhin
Ну с этим, скажем, справился:

$str="a1,a2,a3,a4,a5";
$str=preg_replace("/,/",", $",$str);
echo ("\$$str");

А как быть с первыми двумя?
 

Макс

Старожил PHPClub
PHP:
$str="a1,a2,a3,a4,a5";
$str = '$'.str_replace(',', ',$', $str);
чтобы не напрягать тебя регулярными выражениями самое простое - разбиваешь explode-ом строку на массив (explode(',',$str); ) и потом в цикле проходишь по элементам массива и формируешь строку
 

Макс

Старожил PHPClub
то что я написал - наверное будет полезно для второго пункта.

По первому:
попробуй сначало получить строки
`a1` , `a2` , `a3` , `a4` , `a5`
и
`$a1` , `$a2` , `$a3` , `$a4` , `$a5`

Алгоритм такой же как и в 3-м пункте
 

dim-dem

Новичок
Для второго пункта получилось такое:

PHP:
$str="a1,a2,a3,a4,a5";
$array = explode (',', $str); 
for($i=0;$i<count($array);$i++){
$k.=$array[$i]." = '$".$array[$i]."' , ";
}
echo $k;
Но вылазит запятая в конце.

-~{}~ 05.03.04 01:05:

Для первого пункта:

PHP:
$str="a1,a2,a3,a4,a5";
$array = explode (',', $str); 
for($i=0;$i<count($array);$i++){
$s.="`".$array[$i]."` , ";
$s1.="`\$".$array[$i]."` , ";
}
$s2='('.$s.') VALUES ('.$s1.')';
echo $s2;
Но, опять, же, вылазят запятые в конце.
 

Макс

Старожил PHPClub
dim-dem
ну так сам подумай. Ты же никак не обрабатываешь ситуацию, что в конце запятой не должно быть.
В общем случае делается так:
PHP:
$str="a1,a2,a3,a4,a5"; 
$array = explode(",", $str);
$div = ''; // разделитель, сначало пуст потом будет запятая
$s = ''; // строка в которой получим результат
foreach($array as $value) {
    $s .= $div."`".$value."`";
    $div = ",";
}
echo $s;
это не готовый код, это лишь пример, как избежать запятой в конце
 

SiMM

Новичок
Автор оригинала: dim-dem
PHP:
$str="a1,a2,a3,a4,a5";
for($i=0;$i<count($array);$i++){
$k.=$array[$i]." = '$".$array[$i]."' , ";
}
Но вылазит запятая в конце.
[m]implode[/m]. Вообще-то эта ссылка есть в мануале по [m]explode[/m].
 

IntenT

SkyDiver
Какие циклы, чем вы бредите???
$str = "a1,a2,a3,a4,a5";

1)
echo "('".str_replace(",","' , '", $str)."') VALUES ('$".str_replace(",","' , '$", $str)."')";

2)
echo preg_replace("/(\w+?),/","\\1='\$\\1' , ", $str.",");

3)
echo "$".str_replace(",",",$", $str);
 
Сверху