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的解决方案解决了我的问题,所以感谢大家的关注:)