ホームページ > バックエンド開発 > PHPチュートリアル > PHPを使用してexplodeを使用して文字列を分割するときに初心者が見落としやすい問題についての説明

PHPを使用してexplodeを使用して文字列を分割するときに初心者が見落としやすい問題についての説明

jacklove
リリース: 2023-03-31 06:56:01
オリジナル
2320 人が閲覧しました

1.explode メソッドの説明

explode メソッドは、特定の文字列を境界点として文字列を配列に分割できます。

array explode ( string $delimiter , string $string [, int $limit ] )
ログイン後にコピー

各要素は文字列の部分文字列であり、境界点として文字列区切り文字で区切られます。

パラメータの説明:
delimiter
境界の区切り文字。

string
入力文字列

limit
limit パラメータが設定されており、それが 正の数である場合 の場合、返される配列には最大でも制限要素が含まれ、最後の要素には文字列の残りの部分が含まれます。
limit パラメータが 負の数 の場合、最後の -limit 要素を除くすべての要素が返されます。
limit が 0 の場合、1 として扱われます。

2. 例

使用、文字列を分割

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>
ログイン後にコピー

出力:

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9)
ログイン後にコピー

使用、文字列を分割、制限は正の数です

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str, 5);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>
ログイン後にコピー

出力:

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5,6,7,8,9)
ログイン後にコピー

文字列を分割するために使用します。limit は負の数です

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str, -3);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>
ログイン後にコピー

出力:

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6)
ログイン後にコピー

使用して文字列を分割します。制限は 0

<?php$str = &#39;1,2,3,4,5,6,7,8,9&#39;;$arr = explode(&#39;,&#39;, $str,0);echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($arr);echo &#39;
';?>
ログイン後にコピー

出力:

Array(
    [0] => 1,2,3,4,5,6,7,8,9)
ログイン後にコピー

#3 無視しやすい問題です。 ## 通常、ID 文字列などのデータを分割するにはexplodeを使用します。

<?php$ids = &#39;1,2,3,4&#39;;$data = explode(&#39;,&#39;, $ids);if($data){    foreach($data as $k=>$v){        // do sth
    }
}?>
ログイン後にコピー

通常の状況では、IDは空ではなく、コードを見ると問題は見つかりません。 (データ); 一般的には空の処理が行われたものとみなされます。

しかし、実際の状況は ids=null ですが、データは空ではないため、foreach で実行されるコードで問題が発生します。

<?php$ids = null;$data = explode(&#39;,&#39;, $ids);if($data){
    print_r($data);
}else{    echo &#39;null&#39;;
}?>
ログイン後にコピー

ids=null であるため、explode を使用して分割すると、結果の配列は

Array()

ではなく Array ( [0] => ) になります。 したがって、問題を回避するには判断を変更する必要があります

<?php$ids = null;$data = explode(&#39;,&#39;, $ids);if(isset($data[0]) && $data[0]){    foreach($data as $k=>$v){        // do sth
    }
}?>
ログイン後にコピー

この記事では、PHP で文字列を分割するためにエクスプロードを使用する初心者が見落としやすい問題について説明します。関連する内容については、こちらを参照してください。 PHP中国語ウェブサイト。

関連する推奨事項:

mysql 交換テーブルの 2 列データ方式の説明

0 ~ 1 個のランダムを生成する方法php Decimal メソッド経由

#mysql タイムスタンプ形式関数 from_unixtime

の使用方法

以上がPHPを使用してexplodeを使用して文字列を分割するときに初心者が見落としやすい問題についての説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート