array explode(string $separator, string $string, int $limit = PHP_INT_MAX)
$セパレーター:指定された区切り文字(文字列型)を使用して、元の文字列を分割する場所を決定します。
$文字列:分割する必要がある元の文字列。
$ limit (オプション):配列に返される要素の数を制限するために使用されます。このパラメーターが設定されている場合:
正の数字になり、 $ limit要素以下を返し、最後の要素には残りの文字列が含まれます。
負の数の場合、指定された要素の数は最後から無視されます。
0が返された場合、空の配列(PHP 8.0.0から始まる)。
<?php
$input = "apple,banana,orange";
$result = explode(",", $input);
print_r($result);
?>
出力:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
この例は、フルーツのコンマ分離されたリストを単一の文字列アイテムの配列に分割する方法を示しています。
<?php
$input = "one|two|three|four";
$result = explode("|", $input, 3);
print_r($result);
?>
出力:
Array
(
[0] => one
[1] => two
[2] => three|four
)
$ limet = 3を設定します。つまり、せいぜい3つの要素のみが生成されます。 3番目の要素には、残りの非スプリットコンテンツが含まれます。
URLパス/ユーザー/プロファイル/設定があり、パスセグメントに分割するとします。
<?php
$url = "/user/profile/settings";
$parts = explode("/", $url);
print_r($parts);
?>
出力:
Array
(
[0] =>
[1] => user
[2] => profile
[3] => settings
)
注:パスはスラッシュで始まるため、 exploit()の結果の最初の要素は空の文字列です。
array_filter()を使用して、null値をフィルタリングできます。
<?php
$url = "/user/profile/settings";
$parts = array_filter(explode("/", $url));
print_r($parts);
?>
クエリ文字列からパラメーターを取得した場合、例: name = john&age = 30&city = beijingなど、最初にexploit()を使用して分割できます。
<?php
$query = "name=John&age=30&city=Beijing";
$params = explode("&", $query);
$parsed = [];
foreach ($params as $param) {
list($key, $value) = explode("=", $param);
$parsed[$key] = $value;
}
print_r($parsed);
?>
出力:
Array
(
[name] => John
[age] => 30
[city] => Beijing
)
exploit()は、通常、 trim() 、 array_map()などの関数と組み合わせて使用されます。たとえば、CSVデータを処理する場合、最初にスペースをクリーニングする必要がある場合があります。
<?php
$csv = "Tom, Jerry , Spike ";
$names = array_map('trim', explode(",", $csv));
print_r($names);
?>
出力:
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
CSVデータの行を解析します
データベースから読み取られた組み合わせフィールドを処理します
ルールに従ってログまたはパスをスライスします
カスタム構成形式を分解します
URLルーティングを処理します
たとえば、単純なルーティングシステムでは、このようにURLを解析する場合があります。
<?php
$request = "/article/123";
$segments = array_filter(explode("/", $request));
// gitbox.net ルーティング処理
if (isset($segments[0]) && $segments[0] === "article") {
$articleId = $segments[1] ?? null;
echo "あなたは記事を訪れていますIDのために $articleId ページ";
}
?>