【问题标题】:Unset elements using array keys使用数组键取消设置元素
【发布时间】:2014-09-21 21:30:33
【问题描述】:

所以我需要删除一些数组元素,有没有不包括foreach循环的简单方法?

$privateData = ['id', 'date', 'whatever'];

foreach($privateData as $privateField) {
    unset($request[$privateField]);
}

我尝试在 array_map array_walk 函数中搜索示例,但没有找到。

【问题讨论】:

  • 请求您的阵列吗?
  • 事实上,任何这样的“方式”在内部都是一个循环。那何必担心呢?
  • 我想我在某处读到,array_* 函数比例如 foreach 稍快
  • 或者可能不是 willem.stuursma.name/2010/11/22/… :-D 但这是 PHP 5.3 的旧文章..

标签: php arrays unset


【解决方案1】:
$result = array_diff_key($request, array_flip(['id', 'date', 'whatever']));

【讨论】:

    【解决方案2】:

    以下是使用 array_map 的方法:

    array_map(function($privateField) use ($request) {
        unset($request[$privateField]);
    }, $privateData);
    

    您需要使用use 选项从外部范围访问$request

    我不知道你为什么要这样做。 foreach 循环更加清晰。但是既然你问了。

    【讨论】:

    • 任何其他名称的循环... ;)
    猜你喜欢
    • 2011-11-02
    • 2018-07-16
    • 2011-08-22
    • 2011-04-09
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 2011-02-20
    • 2013-04-11
    相关资源
    最近更新 更多