我需要從深度嵌套的未知結構數組中刪除一個元素(即,我不知道爲了取消設置而對該元素進行尋址的關鍵序列是什麼)。然而,我正在刪除的元素具有一致的結構(stdObject),因此我可以搜索整個多維數組以找到它,但是必須將其刪除。關於如何實現這一點的想法?從多維數組中刪除深度嵌套元素?
編輯:這是我現在試圖實現這個功能。
function _subqueue_filter_reference(&$where)
{
foreach ($where as $key => $value) {
if (is_array($value))
{
foreach ($value as $filter_key => $filter)
{
if (isset($filter['field']) && is_string($filter['field']) && $filter['field'] == 'nodequeue_nodes_node__nodequeue_subqueue.reference')
{
unset($value[$filter_key]);
return TRUE;
}
}
return _subqueue_filter_reference($value);
}
}
return FALSE;
}
EDIT#2:從var_dump
陣列結構的剪斷。
array (size=1)
1 =>
array (size=3)
'conditions' =>
array (size=5)
0 =>
array (size=3)
...
1 =>
array (size=3)
...
2 =>
array (size=3)
...
3 =>
array (size=3)
...
4 =>
array (size=3)
...
'args' =>
array (size=0)
empty
'type' => string 'AND' (length=3)
...所以假設這整個結構被分配給$array
,我需要刪除該元素是$array[1]['conditions'][4]
其中該目標是帶有三個字段的數組:
- 字段
- 值
- 操作
......所有這一切都是字符串值。要解決這個
http://stackoverflow.com/questions/369602/delete-an-element-from-an-array?rq=1 –
我已經讀過這個,它不回答我的問題。如果我知道深度嵌套元素的確切按鍵順序,使用'unset'會很容易,但我不知道。 –
你知道你必須搜索它。所以當你發現它使用未設置。 –