我有类似的东西
Array
(
[0] => stdClass Object
(
[CustomerID] => 14
[Email] => joe.blogs@example.com
[LastName] => Blogs
[BirthDayOfMonth] => 29
[Gender] =>
[Occupation] =>
[SendSpecialOffers] => 1
[SendReminderNotes] => 1
)
[1] => stdClass Object
(
[CustomerID] => 1460
[Email] => example@example.com
[LastName] => Example
[BirthDayOfMonth] => 5
[Gender] => F
[Occupation] =>
[SendSpecialOffers] => 1
[SendReminderNotes] => 1
)
);
我希望每个用逗号分隔的电子邮件地址,就像这样
'joe.blogs@example', 'example@example.com'
我知道我可以通过foreach迭代它,但我有一个非常大的列表,无论如何要更快地做到这一点?感谢
现在,如何根据某些电子邮件地址删除索引?
答案 0 :(得分:6)
您可以使用数组映射和函数执行此操作,但这也将迭代您的数组
echo implode(',',array_map('getEmail',$array));
function getEmail($obj)
{
return $obj->Email;
}
答案 1 :(得分:3)
最简单的解决方案确实是foreach()
来遍历数组的所有项目;为每个项目添加电子邮件到另一个结果数组。
也许你可以通过调用array_walk()
替换foreach,但它可能不会有太大变化:
array_walk
在C 中编码(可能比foreach快一点 - 但不确定) 你必须进行基准测试,看看你的具体情况是否存在显着差异 - 但是我个人会在没有考虑更多的情况下去寻求预测。
答案 2 :(得分:0)
array_filter
最好..请参阅手册上的示例