explode(string $separator, string $string, int $limit = PHP_INT_MAX): array 將字串依分隔符切割成陣列。
<?php
$str = '472347127,893372115,850965403';
$arr = explode(',', $str);
for ($i = 0; $i < count($arr); $i++) {
echo "$i. {$arr[$i]}
";
}
// 輸出:
// 0. 472347127
// 1. 893372115
// 2. 850965403
?>
提示: PHP 7.2+ 棄用 sizeof() 別名,請改用 count()。
<?php
$str = '893372115,472347127,850965403';
$arr = explode(',', $str);
foreach ($arr as $index => $value) {
echo "[$index] $value
";
}
// 輸出:
// [0] 893372115
// [1] 472347127
// [2] 850965403
?>
優點: 語法簡潔、自動處理索引、支援關聯陣列、效能優於 for 迴圈。
$str = 'a,b,c,d,e';
print_r(explode(',', $str, 3));
// Array ( [0] => a [1] => b [2] => c,d,e )
print_r(explode(',', $str, -2)); // PHP 5.1+ 負數限制:排除最後 2 個
// Array ( [0] => a [1] => b [2] => c )
$str = 'apple,banana;orange|grape';
$arr = preg_split('/[,;|]/', $str);
// ['apple', 'banana', 'orange', 'grape']
$str = 'a,,b,,,c';
$arr = array_filter(explode(',', $str), 'strlen');
// ['a', 'b', 'c']
$csv = 'name,age,city\n"John, Jr.",25,"New York"';
$rows = array_map('str_getcsv', explode("\n", $csv));
// 正確處理逗號在引號內的情況
explode()(C 層實作,最快)preg_split()fgetcsv() 串流處理ASP Split(str, ",") 相當於 PHP explode(',', $str),但 PHP 回傳索引陣列而非 1-based 集合,且支援 limit 參數更靈活。