Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中从数组对象获取元素值的最快方法_Php_Arrays_Object - Fatal编程技术网

在php中从数组对象获取元素值的最快方法

在php中从数组对象获取元素值的最快方法,php,arrays,object,Php,Arrays,Object,我有类似的东西 Array ( [0] => stdClass Object ( [CustomerID] => 14 [Email] => joe.blogs@example.com [LastName] => Blogs [BirthDayOfMonth] => 29 [Gender] =>

我有类似的东西

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'
我想得到每个人的电子邮件地址,用逗号隔开,类似这样的东西

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进行迭代,但我得到了一个非常大的列表,有没有更快的方法?谢谢


现在,如何删除基于某些电子邮件地址的索引?

最简单的解决方案确实是使用
foreach()
迭代数组中的所有项;将每个项目的电子邮件添加到另一个结果数组中


也许您可以通过调用来替换foreach,但它可能不会有太大变化:

  • 您不会在PHP中循环,因为
    array\u walk
    是用C编写的(可能比foreach快一点——不过不确定)
  • 但是会为每个项调用一个函数,而不仅仅是几个PHP指令

您必须进行基准测试,以查看您的具体情况是否存在显著差异——但我个人会选择foreach,而不会考虑太多。

您可以使用数组映射和函数进行此操作,但这也会迭代您的数组

echo implode(',',array_map('getEmail',$array));

function getEmail($obj)
{
  return $obj->Email;
}

是最好的。请参阅手册上的示例

我希望那些电子邮件地址所有者不介意您将其张贴在这里…;)“但我得到了一个非常大的清单”-ORM的危险
array\u filter()
返回一个元素数组,根据给定的回调,这些元素被视为“有效”。您能解释一下,您想如何使用它从每个数组元素中提取对象属性吗?