如何删除数组内的嵌套数组

Posted

技术标签:

【中文标题】如何删除数组内的嵌套数组【英文标题】:How to delete a nested array inside of an array 【发布时间】:2019-10-09 23:13:53 【问题描述】:

我有一个由表单数据组成的多维数组,看起来像这个例子:

array [
  "absender" => "Maxim Ivan",
  "email" => "maximivan@example.com",
  "telefon" => "1234567890",
  "fax" => null,
  "grund" => "Gehaltserhöhung",
  "termin" => [
     0 => [
       "person" => "Some Name",
       "meeting" => "10.05"  
     ],
     1 => [
       "person" => "Another Name",
       "meeting" => "18.05"  
     ],
     2 => [
       "person" => "Again another name",
       "meeting" => null,
       "next-possible-meeting" => "1"  
     ],
     3 => [
       "person" => "And again",
       "meeting" => null,
       "next-possible-meeting" => "1"  
     ],
      4 => [
        "meeting" => null,
     ],
  "bemerkung" => "some notes by Maxim"
]

'person' 和 'next-possible-meeting' 是复选框,而 'meeting' 是文本区域。当“人”存在时,我只需要“终端”数据,因此我将它们中的每一个存储在不同的数组中(一个用于人员,一个用于会议,一个用于下一次可能的会议)。

这意味着我不再需要嵌套数组,可以(并且应该)从中删除“终端”。但是我不知道如何正确访问嵌套数组。

如何从整个数组中删除整个 'termin' 数组,从而使其成为普通数组而不是多维数组?

【问题讨论】:

你的意思是这样? 3v4l.org/7bHCd 【参考方案1】:

使用unset()

if(isset($array['termin']))
  unset ($array['termin']);

输出:- https://3v4l.org/1Yj4F

注意:- isset() 用于检查索引是否存在,如果不存在将保存函数调用。

【讨论】:

实际上unset 不会标记未定义的索引错误,它只是什么都不做。 3v4l.org/abU1j 你说得对,我刚刚发现我以某种方式制作了一个对象(我不知道我的代码中发生了什么)所以我只需要if(isset($array->hefte)) unset ($array->hefte);

以上是关于如何删除数组内的嵌套数组的主要内容,如果未能解决你的问题,请参考以下文章

如何通过匹配 ObjectId 字段从嵌套数组中删除对象

如何更新(删除)嵌套数组中的文档

如何删除嵌套数组中的最后一个索引[重复]

如何从 MongoDB 文档中的双重嵌套数组中删除元素。

如何从 AngularJS 范围内的数组中删除项目?

Ruby:如何从数组内的整数中删除特定数字?