在php中使用双引号将数组转换为字符串

时间:2017-02-07 10:33:27

标签: php

我有以下数组

$type=Array(
[0] => PL
[1] => LWP
[2] => Carry Forward
[3] => SL
);

我想将它转换为String.I使用implode函数转换它。

$newarray=implode(",", $type);

但它会像下面那样重新加入字符串

PL,LWP,Carry Forward,SL

我想要像下面的字符串

("PL","LWP","Carry Forward","SL")

请帮帮我......

5 个答案:

答案 0 :(得分:1)

试试这个;)

$newarray='("'.implode('","', $type).'")';

答案 1 :(得分:1)

您可以尝试使用","粘合剂并添加前缀("和后缀")

$newarray= '("' . implode('","', $type) . '")';

当你有空数组时,你也应该考虑边缘情况,因为你可能想稍微处理它。在这种情况下,它会产生("")

答案 2 :(得分:1)

如果你想在生成的字符串中使用双引号,你可以用implode('", "', $type)而不是implode(", ", $type)替换内爆的粘合剂 这些双引号不会出现在字符串的第一个和最后一个值中。因此,在开头添加(",在内爆结束时添加")。 有关完整语法,请参阅下面的代码

<?php
    $type=Array(
    [0] => PL
    [1] => LWP
    [2] => Carry Forward
    [3] => SL
    );
    //Convert array to string with double quotes for each value
    $newarray='("'.implode('", "', $type).'")';
    echo $newarray;
    ?>

答案 3 :(得分:0)

就目前而言,你的问题是无法回答的。您正在尝试创建一个机器可解析的数据表示,而不提供有关如何解析它的足够信息。

e.g。如果一个元素已经包含双引号怎么办 - 你需要逃避它。但是你使用哪种方法进行转义?

e.g。引用数值可能会影响消费者对数据的解释(尽管您的示例不包括数字数据)。

您可以考虑使用fputcsv(); (但这只会写入stream - 所以如果您需要其他地方的数据,那么您需要捕获该流。

答案 4 :(得分:0)

当前答案会忽略$type为空的边缘情况,方法是返回("")而不是(),这可能是您想要的。

在添加括号之前,您可能希望用引号括住每个元素:

$type = array("PL", "LWP", "Carry Forward", "SL");
$quoted = array_map( function($element) { return "\"${element}\""; }, $type );
$newarray = '(' . implode(',', $quoted) . ')';