【问题标题】:Removing selected elements from array of associative arrays从关联数组的数组中删除选定的元素
【发布时间】:2014-04-23 05:20:00
【问题描述】:

我有以下关联数组。

$result = array(
    (int) 0 => array(
        'name' => 'Luke',
        'id_number' => '1111',
        'address' => '1544addr',
        'time_here' => '2014-04-12 13:07:08'
    ),
    (int) 1 => array(
        'name' => 'Sam',
        'id_number' => '2222',
        'address' => '1584addr',
        'time_here' => '2014-04-12 14:15:26'

我想从这个数组中删除选定的元素,使其看起来像这样;

array(
    (int) 0 => array(
        'name' => 'Luke',
        'id_number' => '1111'
    ),
    (int) 1 => array(
        'name' => 'Sam',
        'id_number' => '2222',

这是我写的代码;

    foreach($result as $value) 
    {            
        unset($value('address')  );
        unset($value('time_here')  );
    } 

当我运行代码时,Apache Web 服务器崩溃了。

聪明的会员能指出我做错了什么吗?非常感谢。

【问题讨论】:

  • 您的数组表示法错误。你需要用[]看我的回答

标签: php arrays associative-array


【解决方案1】:

数组符号错误,用这个;

$finalResult = array();
foreach($result as $value) 
{            
    unset($value['address']  );
    unset($value['time_here']  );
    $finalResult[] = $value;
}

这是一个工作演示:Demo

【讨论】:

  • 谢谢!我还有一个问题。如何将截断的数组存储到 $result?答案是从 $value 中删除元素,而不是 $result。
  • 我有一个后续问题。 stackoverflow.com/questions/23235855/…这一次,我想过滤选定的元素而不是删除它们。这更棘手。我什至不知道从什么功能开始。至少,对于删除,可以使用 unset()。你能帮忙吗?
【解决方案2】:

那是因为您没有正确访问数组。使用方括号代替圆括号:

foreach($result as $value) 
    {            
        unset($value['address']  );
        unset($value['time_here']  );
    } 

【讨论】:

  • 这样会更好,在发布您的答案之前检查已经回答的问题
  • @HüseyinBABAL 也许你在我打字的时候发帖了。但无论如何,我会删除我的答案,这样你就是得到所有支持的人:) 可以吗?
猜你喜欢
  • 2017-01-14
  • 2011-07-23
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-31
  • 1970-01-01
  • 2012-12-01
相关资源
最近更新 更多