fgetcsv 将数组转换为带双引号的字符串
fgetcsv convert array to string with double quote enclosure
我正在使用 fgetcsv
函数从 csv 中获取数据作为数组。我想将数组转换为字符串,所以我使用了 implode
函数。
代码:
if (($handle = fopen("storelocations.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$datafinal = implode(",",$data);
echo $datafinal;
}
fclose($handle);
}
我得到的结果字符串为 Ter Aar, Netherlands,4.7159509,52.164688,,211316
。 但我希望每个条目都用双引号引起来。我该怎么做?
预期结果:`"Ter Aar"、"Netherlands"、"4.7159509"、"52.164688"、""、"211316"
我的方法 #1 -
我在 documentation 之后通过 "
作为附件,但它不起作用。
if (($handle = fopen("../storelocations.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",", '"')) !== FALSE) {
$datafinal = implode(",",$data);
echo $datafinal;
}
fclose($handle);
}
我的方法 #2 -
function convert( $str ) {
return '"'.$str.'"';
}
if (($handle = fopen("../storelocations.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",", '"')) !== FALSE) {
//$datafinal = array_map( convert, $data );
$datafinal = implode(",",$data);
echo $datafinal;
//var_dump($data);
}
fclose($handle);
}
这returns一个字符串为"Ter Aar", "Netherlands","4.7159509","52.164688","","""211316"
。
如您所见,空白数据后面的项目在开头有三个引号。
您可以按如下方式进行
// PHP 5.3 and later
echo $datafinal = implode(",",array_filter($data, function($value) { return $value !== ''; }));
这将帮助你确定
谢谢
希望!它会帮助你
尝试以下代码读取csv文件并获取多维数组的数据
$csv_data = array_map('str_getcsv', file('../storelocations.csv'));
foreach ($csv_data as $key => $value)
{
var_dump($value); // print each row of csv
var_dump($value[0]) // print first column of each row
}
我正在使用 fgetcsv
函数从 csv 中获取数据作为数组。我想将数组转换为字符串,所以我使用了 implode
函数。
代码:
if (($handle = fopen("storelocations.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$datafinal = implode(",",$data);
echo $datafinal;
}
fclose($handle);
}
我得到的结果字符串为 Ter Aar, Netherlands,4.7159509,52.164688,,211316
。 但我希望每个条目都用双引号引起来。我该怎么做?
预期结果:`"Ter Aar"、"Netherlands"、"4.7159509"、"52.164688"、""、"211316"
我的方法 #1 -
我在 documentation 之后通过 "
作为附件,但它不起作用。
if (($handle = fopen("../storelocations.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",", '"')) !== FALSE) {
$datafinal = implode(",",$data);
echo $datafinal;
}
fclose($handle);
}
我的方法 #2 -
function convert( $str ) {
return '"'.$str.'"';
}
if (($handle = fopen("../storelocations.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",", '"')) !== FALSE) {
//$datafinal = array_map( convert, $data );
$datafinal = implode(",",$data);
echo $datafinal;
//var_dump($data);
}
fclose($handle);
}
这returns一个字符串为"Ter Aar", "Netherlands","4.7159509","52.164688","","""211316"
。
如您所见,空白数据后面的项目在开头有三个引号。
您可以按如下方式进行
// PHP 5.3 and later
echo $datafinal = implode(",",array_filter($data, function($value) { return $value !== ''; }));
这将帮助你确定
谢谢 希望!它会帮助你
尝试以下代码读取csv文件并获取多维数组的数据
$csv_data = array_map('str_getcsv', file('../storelocations.csv'));
foreach ($csv_data as $key => $value)
{
var_dump($value); // print each row of csv
var_dump($value[0]) // print first column of each row
}