萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP 字串分割與迴圈輸出實務範例

核心函式:explode()

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array 將字串依分隔符切割成陣列。

範例一:for 迴圈搭配 sizeof()

<?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()。

範例二:foreach 迴圈(推薦)

<?php
$str = '893372115,472347127,850965403';
$arr = explode(',', $str);

foreach ($arr as $index => $value) {
    echo "[$index] $value
"; } // 輸出: // [0] 893372115 // [1] 472347127 // [2] 850965403 ?>

優點: 語法簡潔、自動處理索引、支援關聯陣列、效能優於 for 迴圈。

進階應用

限制分割數量(limit 參數)

$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 )

多重分隔符:preg_split()

$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 解析:str_getcsv()

$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()

ASP Split(str, ",") 相當於 PHP explode(',', $str),但 PHP 回傳索引陣列而非 1-based 集合,且支援 limit 參數更靈活。

copyright © 萬盛學電腦網 all rights reserved