回答
嘗試是這樣的(對於PHP < 5.3):
$dst = array();
$str = '1,2,3,4,5,"6,000",7,8,9';
$state = false;
$buffer = '';
for ($i = 0, $lim = strlen($str); $i < $lim; $i += 1) {
$char = $str[$i];
switch ($char) {
case ',':
if (!$state) {
$dst[] = $buffer;
$buffer = '';
}
break;
case '"':
$state = !$state;
break;
default:
$buffer .= $char;
}
}
$dst[] = $buffer;
print_r($dst);
這件作品像魔術一樣,謝謝耀西。也感謝Satya和KingCrunch。 – naboen 2012-04-19 07:23:17
$items = str_getcsv($str);
$items = array_map (
function ($item) { str_replace(',', '', $item); },
$items;
);
現在,如果你就像你可以再次合併它們一樣
$str = implode(',', $items);
似乎str_getcsv()函數僅在PHP 5.3.0或更高版本上運行,即時通訊依然採用5.2.6需要升級我的PHP安裝第一 – naboen 2012-04-19 07:14:28
是的,你需要。 5.3將近3歲,現在5.4幾個星期纔出來。 – KingCrunch 2012-04-19 07:20:21
使用此:
$str = '1,2,3,4,5,"6,000",7,8,9';
$pattern='/"(\d+),(\d+)"/';
$replacement='${1}$2';
echo preg_replace($pattern, $replacement, $str);
感謝:-)
str_replace函數(查找,替換字符串,count) – Satya 2012-04-19 06:54:15
@Satya你可以顯示一個例子,刪除逗號內的逗號,但不__外 – KingCrunch 2012-04-19 06:55:04