我的数组包含格式如下的字符串:
a@hotmail.com Entry ID: 12321
b@hotmail.com Entry ID: 12322 Entry ID: 12323
c@hotmail.com Entry ID: 12324 Entry ID: 12325 Entry ID: 12326
d@hotmail.com Entry ID: 12327 Entry ID: 12328
e@hotmail.com Entry ID: 12329 Entry ID: 123210
我想从每个字符串中获取电子邮件地址&推入阵列。
来自Stackoverflow的许多其他人,但浏览器在 echo / print_r 上显示空白屏幕答案 0 :(得分:2)
您可以通过空格explode()
字符串和array_shit()
第一个元素。类似的东西:
$emailAddresses = array();
foreach($strings as $string) {
$emailAddresses[] = array_shift(explode(' ', $string));
}
除非绝对必要,否则请避免使用RegEx。
答案 1 :(得分:1)
我在这里假设,对于每一行,电子邮件和其他数据之间的分隔符是一致的 - 单个空格。
只需使用explode()函数将每个元素拆分为一个空格,然后取得生成的拆分的第一个元素。这将是电子邮件。
foreach($arr as $key => $value){
$parts = explode(" ",$value);
$email = $parts[0];
}
答案 2 :(得分:1)
如果字符串始终以电子邮件地址开头。你可以像这样工作:
foreach($emailArray as $value){
$email = explode(" ",$value)[0];
}
答案 3 :(得分:0)
您需要使用regex
。
preg_match_all("/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i", $string, $matches);
print_r($matches[0]);
<强>输出强>
Array
(
[0] => a@hotmail.com
[1] => b@hotmail.com
[2] => c@hotmail.com
[3] => d@hotmail.com
[4] => e@hotmail.com
)