php str_getcsv把字符串解析为数组的实现方法

yipeiwu_com6年前PHP代码库

php根据定界符把字符串解析为数组一般使用explode方法实现

例如:使用”,”为定界符解析字符串为数组

<?php
$str = '1,2,3';
$arr = explode(',', $str);
print_r($arr);
?>

输出:

Array
(
  [0] => 1
  [1] => 2
  [2] => 3
)

但对于一些较复杂的字符串,例如csv格式,使用explode不能得出想要的结果,而使用正则较麻烦。

例如:

<?php
$str = "中国,广东省,广州市,天河区,'113.329884,23.154799',1,'2016-01-01 12:00:00','1,2,3,4,5,6'";
$arr = explode(',', $str);
print_r($arr);
?>

输出:

Array
(
  [0] => 中国
  [1] => 广东省
  [2] => 广州市
  [3] => 天河区
  [4] => '113.329884
  [5] => 23.154799'
  [6] => 1
  [7] => '2016-01-01 12:00:00'
  [8] => '1
  [9] => 2
  [10] => 3
  [11] => 4
  [12] => 5
  [13] => 6'
)

实际上想得到的结果是:

Array
(
  [0] => 中国
  [1] => 广东省
  [2] => 广州市
  [3] => 天河区
  [4] => 113.329884,23.154799
  [5] => 1
  [6] => 2016-01-01 12:00:00
  [7] => 1,2,3,4,5,6
)

php提供了str_getcsv方法,可以把字符串作为csv格式来处理,这样方便解析为数组。

str_getcsv 解析csv字符串为数组

array str_getcsv ( string $input [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]] )

参数:

input 待解析的字符串

delimiter 设定字段界定符(仅单个字符)

enclosure 设定字段包裹字符(仅单个字符)

escape 设置转义字符(仅单个字符),默认为反斜线(\)

实例:

<?php
$str = "中国,广东省,广州市,天河区,'113.329884,23.154799',1,'2016-01-01 12:00:00','1,2,3,4,5,6'";
$arr = str_getcsv($str, ',', "'");
print_r($arr);
?>

输出:

Array
(
  [0] => 中国
  [1] => 广东省
  [2] => 广州市
  [3] => 天河区
  [4] => 113.329884,23.154799
  [5] => 1
  [6] => 2016-01-01 12:00:00
  [7] => 1,2,3,4,5,6
)


以上这篇php str_getcsv把字符串解析为数组的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【宜配屋www.yipeiwu.com】。

相关文章

将二维数组转为一维数组的2种方法

如何将下面的二维数组转为一维数组。 复制代码 代码如下:$msg = array(  array(    'id'=>'45',    'name'=>'jack'  ), ...

基于php中使用excel的简单介绍

基于php中使用excel的简单介绍

在工作中需要处理多语言的翻译问题,翻译都是写在excel表格里面。为了处理方便我就保留中文和英文两列。 这样需要将这些数据从excel中取出来,然乎保存在excel的数组中,通过使用循环...

深入Nginx + PHP 缓存详解

Nginx缓存nginx有两种缓存机制:fastcgi_cache和proxy_cache下面我们来说说这两种缓存机制的区别吧proxy_cache作用是缓存后端服务器的内容,可能是任何...

php计算整个目录大小的方法

本文实例讲述了php计算整个目录大小的方法。分享给大家供大家参考。具体实现方法如下: /** * Calculate the full size of a directory *...

火车头discuz6.1 完美采集的php接口文件

PS:对原文件的修改较大,程序中注释已经很详尽,这里就不多说了。 复制代码 代码如下:<?php // header('Content-Type:text/html;charset...