-1

例子 :

Array
    (
          [0] => "example.fr", "2013-08-24", "test"
          [1] => "toto.com, "2014-10-01", "test2"
    )

我该如何分割这个数组每个逗号?我想将引号中的每个单词都放入这样的变量中:

    $var1= "example.fr";
    $var2= "2013-08-24";
    $var3 = "test";
....

编辑:数组的结构很好!每个元素都只包含在一个数组中的引号中!类似于 CSV 文件

4

6 回答 6

2

您可以使用列表

array("example.fr, 2013-08-24, test")

list($var1, $var2, $var3) = explode(', ', $array[0]); // or current
于 2013-05-27T09:10:55.907 回答
2

不要重新发明 CSV 解析器,使用现有的功能。

从 PHP 5.3+ 开始:

$parsed = array_map('str_getcsv', $array);

http://php.net/str_getcsv

5.3之前:

$fh = fopen('php://temp', 'r+');

$parsed = array();
foreach ($array as $row) {
    ftruncate($fh, 0);
    fwrite($fh, $row);
    rewind($fh);
    $parsed[] = fgetcsv($fh);
}
fclose($fh);
于 2013-05-27T09:59:16.600 回答
2

除非我误解了您,否则您可以访问数组元素并将它们分配给如下变量:

$var1 = $arrayName[0][0];
$var2 = $arrayName[0][1];
$var3 = $arrayName[0][2];

我无法从您的问题中看出该数组是每个索引都保存一个字符串还是二维数组。如果它持有字符串,那么请参阅 realshadow 的答案。

于 2013-05-27T09:10:02.213 回答
0

I don't think your syntax is quite right to create a multidimensional array, consider this example:

$myArray = array( array("example.fr", "2013-08-24", "test"),
           array("toto.com, "2014-10-01", "test2")); 

Now you have an array of arrays and can iterate over each.

If you know for sure how many items you have in each array then you can explode the array into its constituents, but if you don't know before hand than iterating will see you through.

于 2013-05-27T09:11:44.930 回答
0

对数组的每个项目使用explode:http: //www.w3schools.com/php/func_string_explode.asp

于 2013-05-27T09:10:17.917 回答
0

我对结构不是很确定,但如果这是你要找的,请告诉我,很乐意帮助你 -

<?php

$myarr = array( array("example.fr", "2013-08-24", "test"),array("toto.com", "2014-10-01", "test2"));

foreach($myarr as $breakpart)
{
echo "<pre>";     
print_r($breakpart);
}

输出-

Array
(
    [0] => example.fr
    [1] => 2013-08-24
    [2] => test
)

Array
(
    [0] => toto.com
    [1] => 2014-10-01
    [2] => test2
)

键盘链接 - codepad.org/6S7EMldq

于 2013-05-27T09:20:06.837 回答