首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 字串與陣列互轉利器:implode() 與 explode() 完全指南

     編輯:PHP 相關知識

PHP 字串與陣列互轉利器:implode() 與 explode() 完全指南

implode() 與 explode() 是 PHP 處理字串與陣列轉換的兩大核心函數,掌握它們能讓資料拼接、切割、SQL 組裝變得簡潔高效。

implode():陣列 → 字串

用指定分隔符將陣列元素連接成字串。別名 join()。

$arr = ['a', 'b', 'c'];
$str = implode(',', $arr);  // "a,b,c"
echo $str;

實戰場景:動態組裝 SQL IN 條件

$ids = [1, 3, 5, 7];
$placeholders = implode(',', array_fill(0, count($ids), '?')); // "?,?,?,?"
$sql = "SELECT * FROM users WHERE id IN ($placeholders)";
$stmt = $pdo->prepare($sql);
$stmt->execute($ids);

explode():字串 → 陣列

用分隔符將字串切割成陣列。注意:分隔符為空字串會拋出錯誤。

$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
// ['piece1', 'piece2', 'piece3', 'piece4', 'piece5', 'piece6']

限制回傳元素數量(第三參數 limit):

$str = 'a,b,c,d,e';
explode(',', $str, 3);   // ['a', 'b', 'c,d,e']  正數:最多 N 個
explode(',', $str, -2);  // ['a', 'b', 'c']      負數:排除最後 N 個

常見陷阱與最佳實踐

情境建議
分隔符可能出現在資料中改用 JSON 序列化或罕見字元 (如 \x1F)
需保留鍵名關聯陣列implode 忽略鍵名,若需保留請先 array_values()
字串首尾有分隔符explode 會產生空元素,配合 array_filter() 移除
大量資料效能兩函數均為 C 底層實作,效能極佳,無需手寫迴圈

進階:配合 array_map / array_filter

// 去除空白並統一小寫
$tags = explode(',', $input);
$tags = array_map('trim', $tags);
$tags = array_filter($tags);          // 移除空字串
$tags = array_map('strtolower', $tags);
$clean = implode(',', $tags);

對照表

函數方向參數順序別名PHP 版本
implodeArray → String(string $glue, array $pieces)join4.0+
explodeString → Array(string $separator, string $string, int $limit = PHP_INT_MAX)—4.0+

記住:implode = 縫合 (glue)、explode = 炸裂 (split)。善用這對組合,能讓資料格式轉換代碼更簡潔、可讀性更高。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved