日期:2014-05-17  浏览次数:20443 次

拆分合并Sql语句字符串
有一sql字符串,
$sql   =   "INSERT   INTO   tablename   (field1,field2,field3,field4,field5,field6,field7,field8)   VALUES   ( 'b9 ',NULL, 'he,p ',1, 'd-0 ',1,11, '4d ') ";
现已将VALUES部分取出放到以字符串变量,如:$v= " 'b9 ',NULL, 'he,p ',1, 'd-0 ',1,11, '4d ' "
问:怎样将$v拆分为数组,再合并数组后还是原样的呢?(注意单引号和逗号)


------解决方案--------------------
呕,是我没看清你的需求
请确认数据格式

尝试以下分割字符
$v= " 'b9 ',NULL, 'he,p ',1, 'd-0 ',1,11, '4d ' "
$t = preg_split( '/,(?!\w+\ ',?)/i ',$v);
print_r($t);
合并
echo implode( ', ',$t);


------解决方案--------------------
<?php
$v= " 'b9 ',NULL, 'h,3,he,p ',1, 'd-0 ',1,11, '4d ' ";
$pattern = "/( '[^ ']* ')|,?([^ ',]+),?/ ";
$res = array();
if (preg_match_all($pattern, $v, $match))
{
foreach($match[1] as $key=> $val)
{
if ($val == ' ')
{
$res[$key] = $match[2][$key];
}
else
$res[$key] = $val;
}
}
echo ' <pre> ';
print_r($res);
?>