2015-02-08 67 views
-1

我有一个数组;准备逗号前的字符串

Array 
(
    [0] => Test1 
    [1] => Test2 
    [2] => Test3 
) 

现在我已经使用了内爆功能从中我得到了逗号分隔字符串: 的Test1,Test2的,Test3的

现在我想之前和之后把一个引号(“”)每一个词,例如 “测试1”,“测试2”,“测试3”

我怎么能改变它工作我想要的。

回答

0

你可以使用foreach循环来创建一个新的数组,然后使用implode。使用下面的代码

<?php 
$array = array("Test1","Test2","Test3"); 

$quotes = array(); 
foreach($array as $p){ 
$quotes[] = '"'.$p.'"'; 
} 
echo implode(",",$quotes); // Outputs "Test1","Test2","Test3" 
?> 

的另一种方式,你可以通过封闭在""引号内爆做出来,然后爆逗号,引号。

<?php 
    $array = array("Test1","Test2","Test3"); 


    echo '"'.implode('","',$array).'"'; // Outputs "Test1","Test2","Test3" 
    ?> 

希望这有助于你

+0

为什么downvote这个答案它的工作原理 – user3647254 2015-02-08 10:23:24

+0

它的工作原理,“-1”,是为要求“你必须” - 原因还有其他,更简单,选项。 – dognose 2015-02-08 10:24:06

+0

@ dognose编辑我的回答请删除downvote请 – user3647254 2015-02-08 10:24:50

2

试试这个简单的一行:

$quotedStrings = '"' . implode('","', $myArray) . '"'; 

的“glue”参数可以是一个复杂的字符串,虽然你只有把"在始末。

+0

1 upvote很好的方式来做到这一点 – user3647254 2015-02-08 10:23:57

1

Axel的答案对于给定的szenario来说是完全正确的, 使用array_map以及implode也可以。

这样做的好处是,对每个元素的修改不限于元素的开始/结束。例如,在应用implode之前,您也可以将每个条目转为小写,或执行其他更复杂的操作。

$quotedString = implode(",", array_map("myCallback", $myArray)); 

function myCallback($entry){ 
    //here you can to whatever you like to EACH element. 
    return '"'.$entry.'"'; 
} 

认为这是一个选项

+0

一个更好的方法来做到这一点+ 1 – user3647254 2015-02-08 10:31:52