2015-02-08 78 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