1

私は文字列を持っています

$str = '1,2,3,4,5,"6,000",7,8,9';

次のようにクリーンアップするにはどうすればよいですか。

'1,2,3,4,5,6000,7,8,9'
4

4 に答える 4

3

http://php.net/str-getcsv

$items = str_getcsv($str);
$items = array_map (
  function ($item) { str_replace(',', '', $item); },
  $items;
);

必要に応じて、それらを再度マージできます

$str = implode(',', $items);
于 2012-04-19T06:57:08.730 に答える
1

次のようなことを試してください (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);
于 2012-04-19T07:18:03.627 に答える
0

これを使って:

$str = '1,2,3,4,5,"6,000",7,8,9';
$pattern='/"(\d+),(\d+)"/';
$replacement='${1}$2';

echo preg_replace($pattern, $replacement, $str );

ありがとう:-)

于 2012-04-19T07:48:31.610 に答える
-1
<?php
$str = '1,2,3,4,5,"6,000",7,8,9';
echo $str;
echo str_replace('"','',$str);
?>
于 2012-04-19T07:00:10.447 に答える