php用逗号分隔符分解

php用逗号分隔符分解,php,regex,explode,Php,Regex,Explode,我正在从无法更改的外部资源中删除以下类型的字符串: ["one item",0,0,2,0,1,"800.12"], ["another item",1,3,2,5,1,"1,713.59"], (etc...) 我使用以下代码将元素分解为数组 <?php $id = 0; foreach($lines AS $line) { $id = 0; // remove brackets and line end comma's $found_data[] = str_repla

我正在从无法更改的外部资源中删除以下类型的字符串:

["one item",0,0,2,0,1,"800.12"],
["another item",1,3,2,5,1,"1,713.59"],
(etc...)
我使用以下代码将元素分解为数组

<?php
$id = 0;
foreach($lines AS $line) {
  $id = 0;

  // remove brackets and line end comma's
  $found_data[] = str_replace(array('],', '[',']', '"'), array('','','',''), $line);

  // add data to array
  $results[$id] = explode(',', $line);

}

然而,不幸的是,这里的情况并非如此:有些值被“,”包围着,有些则不是(并非总是相同的值)。因此,我有点不知所措。任何人都可以为我指出正确的方向吗?

您可以在这里使用
json\u decode
,因为您的输入字符串似乎是有效的json字符串

$str = '["another item",1,3,2,5,1,"1,713.59"]'
$arr = json_decode($str);
然后,您可以访问结果数组中的单个索引,或使用以下命令打印整个数组:

print_r($arr);
输出:

Array
(
    [0] => another item
    [1] => 1
    [2] => 3
    [3] => 2
    [4] => 5
    [5] => 1
    [6] => 1,713.59
)

您可以在此处使用
json\u decode
,因为您的输入字符串似乎是有效的json字符串

$str = '["another item",1,3,2,5,1,"1,713.59"]'
$arr = json_decode($str);
然后,您可以访问结果数组中的单个索引,或使用以下命令打印整个数组:

print_r($arr);
输出:

Array
(
    [0] => another item
    [1] => 1
    [2] => 3
    [3] => 2
    [4] => 5
    [5] => 1
    [6] => 1,713.59
)

“第二行使用逗号表示千”,我看到了一个点分隔符…数据是否可能格式化为JSON?根据您的example@ka_lin你是什么意思?看最后一个值,1713.59。千位分隔符是逗号,十进制分隔符是点。:@franzgleichman ahhh显然。我会尝试json_解码,谢谢!会报告ba的ck.@ka_lin恕我直言,它确实检查了变更日志。但是franz的解决方案解决了我的问题,所以感谢大家的研究:)“第二行用逗号表示千”,我看到了一个点分隔符……数据是否可能格式化为JSON?根据您的分析,我的看法是这样的example@ka_lin你的意思是什么?请看最后一个值1713.59.Thousands separator是逗号,decimal separator是点。:@Franzgleichman ahhh显然。我会尝试json_解码,谢谢!会回来的。@ka_lin恕我直言,是的,检查变更日志。不过franz的解决方案解决了我的问题,所以感谢大家的关注:)