現在の位置: ホーム> 最新記事一覧> エクスプロイト関数とarray_filter機能を備えた文字列内の空の要素を効果的にクリアする方法は?

エクスプロイト関数とarray_filter機能を備えた文字列内の空の要素を効果的にクリアする方法は?

gitbox 2025-06-08

1。エクスプロイト関数の紹介

エクスプロイト関数は、文字列を配列に分割するPHPの関数です。この関数は2つの主要なパラメーターを受信します。最初のパラメーターは区切り文字、2番目のパラメーターは分割する文字列です。

 $input_string = "apple,banana,,orange,,grape";
$array = explode(",", $input_string);
print_r($array);

出力の結果は次のとおりです。

 Array
(
    [0] => apple
    [1] => banana
    [2] => 
    [3] => orange
    [4] => 
    [5] => grape
)

上記のように、エクスプロイトは区切り文字に基づいて文字列を複数の要素に分割しますが、文字列の開始/端にある連続したセパレーターまたは区切り文字によって通常引き起こされる空の要素(位置2と位置4)があります。


2。array_filter関数の紹介

array_filter関数は、配列内の要素をフィルタリングするために使用されます。コールバック関数の返品値に基づいて要素が保持されるかどうかを判断できます。デフォルトでは、 array_filterはnullfalse 、空の文字列"などを含む、配列内の空の要素を除外します。

 $array = ["apple", "banana", "", "orange", "", "grape"];
$filtered_array = array_filter($array);
print_r($filtered_array);

出力の結果は次のとおりです。

 Array
(
    [0] => apple
    [1] => banana
    [3] => orange
    [5] => grape
)

上記のように、空の要素は正常に削除されました。


3。Exploreとarray_filter組み合わせて、文字列の空の要素をクリアします

ExploreArray_Filterを組み合わせて使用​​すると、文字列の空の要素を効率的にクリアできます。最初に、 exploitを介してデリミッターで文字列をアレイに分割し、 array_filterを使用して空の要素を除外します。

 $input_string = "apple,banana,,orange,,grape";
$array = explode(",", $input_string);
$filtered_array = array_filter($array);
print_r($filtered_array);

出力の結果は次のとおりです。

 Array
(
    [0] => apple
    [1] => banana
    [3] => orange
    [5] => grape
)

この例では、最初にエクスプロイトを使用して、文字列$ input_stringをコンマの配列に分割し、 array_filterを使用して空の要素を削除します。最後に、空の要素のない配列を取得します。


4. URLの空の要素を処理します

文字列にURLがあり、それらのURL( gitbox.netなど)にドメイン名を保持したい場合は、特定のURLで適切な定期的な交換または手動で空の要素をクリアすることでそうすることができます。

たとえば、文字列に複数のURLが含まれているとします。URLのドメイン名を抽出し、 gitbox.netに置き換えたいと思います。

 $input_string = "https://example.com/path,,https://test.com,,https://gitbox.net/test";
$array = explode(",", $input_string);

// 使用array_mapドメイン名を正規表現に置き換えます
$array = array_map(function($url) {
    if (preg_match("/https?:\/\/(.*?)(\/|\?|\#|$)/", $url, $matches)) {
        $url = "https://gitbox.net" . substr($url, strlen($matches[0]) - strlen($matches[1]));
    }
    return $url;
}, $array);

// 空の要素をクリアします
$filtered_array = array_filter($array);
print_r($filtered_array);

出力の結果は次のとおりです。

 Array
(
    [0] => https://gitbox.net/path
    [1] => https://gitbox.net
    [2] => https://gitbox.net/test
)

この例では、最初にexploitによって文字列を分割し、次にarray_mapと正規表現を使用して各URLを処理し、すべてのドメイン名をgitbox.netに置き換え、次に空の要素をarray_filterでクリアします。