如何将CSV字符串读入数组

时间:2012-09-05 17:34:53

标签: php arrays variables

  

可能重复:
  How can I split a comma delimited string into an array in PHP?
  extract tags (words) from whole string   

我正在尝试将长变量读入数组。

变量$x = "text1", "text2", "text3",等......

$x = '"text1", "text2", "text3"';

我是否只需将其称为我的数组:

array($x)?

这似乎不起作用

我希望最终产品是:

array("text1", "text2", "text3")

我做错了什么?谢谢!

编辑:

好的,一些细节:

我正在尝试使用许多动态读取日期替换以下数组中的日期字段:

$myCalendar->setSpecificDate(array("2012-09-09", "2012-09-10"), 1, '');

我在变量$ x中有动态读取日期。当我回复$ x时,我得到的格式为“2012-09-09”,“2012-09-10”,“2012-09-09”,“2012-09-10”,“2012-09-09 “,”2012-09-10“等等

由于

3 个答案:

答案 0 :(得分:2)

如果你的变量是一个字符串,如:

$x = '"text1", "text2", "text3"'

您可以将其转换为str_getcsv的数组,如下所示:

$x = '"text1", "text2", "text3"';
$yourArray = str_getcsv($x);

答案 1 :(得分:1)

如果输入字符串为'"text1", "text2", "text3"'

您可以使用以下代码获取包含三个字符串的数组

print_r( 
   explode( ",", preg_replace('/[" ]*/', "", '"text1", "text2", "text3"'))
);
// Outputs Array ( [0] => text1 [1] => text2 [2] => text3 )

这假设你的字符串中没有空格,如果允许空格,你将不得不玩它

答案 2 :(得分:0)

爆炸。 String成为基于分隔符的数组。

$x = "text1,text2,text3";
$new_array = explode(',', $x);

这变为:

Array
(
    [0] => text1
    [1] => text2
    [2] => text3
)