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 步:对于每封电子邮件,它会使用@分隔符展开电子邮件。

这意味着如果我给了 email iteachyou@stackoverflow.phpstuff,就会变成一个包含as和as$arr的数组。iteachyou[0]stackoverflow.phpstuff[1]

在这种情况下[0]or[1]是数组中的索引。如果数组有 23 个项目,那么我可以说$array[22]获取最后一个项目。数组索引通常以第一项为 0,第二项为 1,以此类推。

第 3 步:它修剪当前位于的 URL $arr[1]。这是为了清理。它还将 URL 添加到$domains数组中。

第 4 步:它检查重复项。我假设存在检查重复项的实际代码,而不仅仅是评论。

第五步: 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 回答