从PHP中的关联数组列表中删除项

从PHP中的关联数组列表中删除项,php,arrays,associative-array,Php,Arrays,Associative Array,我有一个关联数组列表: $arr = array( array( 'id' => 1, 'name' => 'john', 'foo' => 'fee' ), array( 'id' => 2, 'name' => 'peter', 'foo' => 'fi' ) ); 我想从列表中的每个数组中删除unset foo。我有以下代码来

我有一个关联数组列表:

$arr = array(
    array(
        'id' => 1,
        'name' => 'john',
        'foo' => 'fee'
    ),
    array(
        'id' => 2,
        'name' => 'peter',
        'foo' => 'fi'
    )
);
我想从列表中的每个数组中删除unset foo。我有以下代码来执行此操作:

for ($i = 0; $i < count($arr); $i++)
    unset($arr[$i]['foo']);

由于此列表中可能有几百个数组,我想知道这是否是最有效的方法。我浏览了一下数组函数列表,但没有发现任何相关的替代方法。

如评论中所述,我的问题的其他选项可能包括数组映射或数组漫游。在150个关联数组项的数组中,for循环的速度比array_walk函数快10倍。数组映射函数在多维数组上不起作用。平均时间如下所示,每次3次:

for循环:0.000136 阵列步距:0.001452


谢谢大家对这个话题的帮助和讨论。

是什么让你认为这是没有效率的?最有效的方法是不删除它们,甚至不设置它们…将其与数组_mapfunction$a{unset$a['foo']},$arr;:@dewd我不认为你能得到比假设它在那里并扰乱它更有效的东西,因为你目前正在做的不是实际搜索它,而是假设它在那里并扰乱它。ok@vp_arth。知道自己在遵循最佳实践总是好的,而不仅仅是为了完成工作而编写代码,无论性能影响如何。