0

以下の関数は、電子メール リストをファイルからドメイン リストにトリミングし、重複を削除するスクリプトの一部です。

/* define a function that can accept a list of email addresses */
function getUniqueDomains($list) {
    // iterate over list, split addresses and add domain part to another array
    $domains = array();
    foreach ($list as $l) {
        $arr = explode("@", $l);
        $domains[] = trim($arr[1]);
    }

    // remove duplicates and return
    return array_unique($domains);
}

とは$domains[] = trim($arr[1]);どういう意味ですか? 具体的には、$arr[1]. [1]この文脈で とはどういう意味ですか? なぜ変数$arrが配列変数になるのですか?

4

2 に答える 2

0

配列をexplode返します。配列の各部分は、区切り文字で分割されたテキストです。この場合は@.

次の文字から文字列を削除trimします。

  • ' '普通の空間。
  • '\t'タブ。
  • '\n'新しい行。
  • '\r'キャリッジ リターン。
  • '\0'NULバイト_
  • '\x0b'垂直タブ。

ステップ 1:リストを与えgetUniqueDomains($list)ます。

ステップ 2:電子メールごとに、@区切り文字で電子メールを展開します。

これは、私が電子メールを送信した場合iteachyou@stackoverflow.phpstuff、asおよびas$arrを含む配列になることを意味します。iteachyou[0]stackoverflow.phpstuff[1]

この場合[0]、 or[1]は配列内のインデックスです。$array[22]配列に 23 個の項目がある場合、最後の項目を取得すると言えます。配列インデックスは、通常、最初の項目は 0 から始まり、2 番目の項目は 1 などです。

ステップ 3:現在 にある URL をトリミングします$arr[1]。これはクリーンアップ用です。また、$domains配列に URL を追加します。

ステップ 4:重複をチェックします。コメントだけでなく、重複をチェックする実際のコードがあると想定しています。

ステップ 5: return結果。

于 2013-01-28T22:29:19.850 に答える
0

1 は配列のインデックスです。

たとえば、email@gmail.com というメール アドレスを持っているとします。 explode指定された文字をセパレータとして使用して、文字列を配列に分割します。

この場合$arr = explode("@", $l);、「@」文字を使用して電子メールを分割し、配列を $arr に格納します。

$arr = explode("@", "email@gmail.com");次の配列になります。

$arr[0] = "email"
$arr[1] = "gmail.com"

$domains[] = trim($arr[1]);ドメイン ($arr[1]) をドメイン配列に格納します

于 2013-01-28T22:24:08.757 に答える