[PHP] implode、explode 將陣列與字串的組合與分割

implode、explode 在php的應用上,我們時常有必要將許多的資料整合成一串字串來方便傳遞到下一個網頁,抑或是我們可能會需要將一個陣列的檔案用最小的方式整合成一串字串來存入資料庫之中,因此我們就會用上這兩個陣列與字串的組合與分割函數,我個人認為在平常撰寫程式的過程中,這兩個函數的使用率真的是相當的高,如果能夠活用它們的話我相信在很多功能上你也能夠相當的得心應手,不費吹灰之力就完成啦!

 


implode() – 陣列組合成字串

$text = implode(組合字串, 要組合的陣列);

implode()這個函數可以將一個陣列按照你所期望的字串組合起來,以下直接演示相關範例

範例

基本陣列組合

$Array =  array("Apple", "Banana", "Cherry");
$Text = implode(", ", $Array);

echo $Text; // Result: Apple, Banana, Cherry

常見的一些組合情境

$Array_1 = array(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);
$Array_2 = array(7, 13, 19, 23, 31);

$Text_1 = implode(",", $Array_1);   // Ans: 2,3,5,7,11,13,17,19,23,29
$Text_2 = implode(" - ", $Array_2);   // Ans: 7 - 13 - 19 - 23 - 31

有時候在需要組合一些SQL語法的情境下也相當好用

$Array_Key = array("Account", "Password", "Email");
$Array_Value = array("RicharLin", "123456", "me@richarlin.tw");

$SQL_Key = implode(", ", $Array_Key);  
  // Ans: Account, Password, Email

$SQL_Value = implode("', '", $Array_Value);
$SQL_Value = "'".$SQL_Value."'";  
  // Ans: 'Richarlin', '123456', 'me@richarlin.tw'

$SQL = "INSERT INFO UserData ($SQL_Key) values ($SQL_Value)";
echo $SQL;
  // Ans: INSERT INFO UserData (Account, Password, Emaily) values ('Richarlin', '123456', 'me@richarlin.tw')


explode() – 將字串按照指定字串切割成陣列

$array = explode(分割字串, 要分割的字串);

explode() 這個函數能夠將一個字串按照指定的文字做切割,並將切割後的內容放入陣列中。

範例

基本範例

$Text_1 = "Apple,Banana,Cherry";
$Text_2 = "2,3,5,7,11,13,17,19,23,29";
$Text_3 = "7 - 13 - 19 - 23 - 31";

$Array_1 = explode(",", $Text_1); 
 // $Array_1 >> {"Apple", "Banana", "Cherry"}

$Array_2 = explode(",", $Text_2);
 // $Array_2 >> {"2", "3", "5", "7", "11", "13", "17", "19", "23", "29"}

$Array_3 = explode("-", $Text_3);
 // $Array_3 >> {"7 ", " 13 ", " 19 ", " 23 ", " 31"}

$Array_3_1 = explode(" - ", $Text_3);
 // $Array_3_1 >> {"7", "13", "19", "23", "31"}
 // 切割的字元是包含空格的,因此務必要確認好切割的形式!

略為複雜的應用

$Text_1 = "0900,A,10;1000,B,12;1100,C,14;1200,D,20;";
$Array_1 = explode(";", $Text_1);
  // $Array_1 >> {"0900,A,10", "1000,B,12", "1100,C,14", "1200,D,20", ""}

for($i=0;$i<count($Array_1)-1;$i++){
  $Array_2[$i] = explode(",", $Array_1[$i];
}

for($i=0;$i<count($Array_2);$i++){
  echo $Array_2[$i][0]." => ".$Array_2[$i][1]." : ".$Array_2[$i][2]."<BR>";
}
// Ans:
//   0900 => A : 10
//   1000 => B : 12
//   1100 => C : 14
//   1200 => D : 20

延伸閱讀

[PHP] json_encode、json_decode JSON的編碼與解碼應用

本站 PHP 相關文章列表