[英]Removing specific nested array key from request
我遇到了一個特定的問題,我需要從我的請求中刪除特定的嵌套數組鍵,因此它不會存儲在我的數據庫中。 我創建了一個請求 class,這就是我迄今為止嘗試完成的方式:
這是我在表單提交后從請求中獲得的數據:
"options" => array:2 [▼
"product_options" => array:1 [▶]
"additional_product_options" => array:1 [▼
"Tenetur dolor labore" => null
]
]
正如你所看到的, additional_product_options
數組有一個空值的鍵,所以我想從數組中完全刪除這個鍵。 我使用unset()
和array_filter()
嘗試了這個,但我沒有得到想要的結果。 到目前為止,我是這樣嘗試的:
if(isset($this->input('options')['additional_product_options'])){
foreach ($this->input('options')['additional_product_options'] as $key => $val){
if(is_null($key) || is_null($val)){ //Check for null values
unset($this->input('options')['additional_product_options'][$key]); //Remove key from array
}
}
}
在我用dd($this->options())
轉儲我的請求后,我仍然在這個數組中獲得Tenetur dolor labore
密鑰:
array:2 [▼
"product_options" => array:1 [▼
"Et sit id culpa rep" => "sdad,ads"
]
"additional_product_options" => array:1 [▼
"Tenetur dolor labore" => null
]
]
使用array_filter()
,我仍然得到相同的結果:
if(isset($this->input('options')['additional_product_options'])){
array_filter($this->input('options')['additional_product_options']);
}
轉儲我的數據后,關鍵仍然在這里:
"options" => array:2 [▼
"product_options" => array:1 [▶]
"additional_product_options" => array:1 [▼
"Tenetur dolor labore" => null
]
]
在理想情況下, Tenetur dolor labore
密鑰將被完全刪除, additional_product_options
數組將為空。 我在這里做錯了什么?
試試這個......我已經測試了當前選項數組:
出於測試原因,我制作了選項數組:
$options = ['product_options' => ['additional_product_options' =>
['Tenetur dolor labore' => null]], 'additional_product_options' => 'some value'];
然后
unset($options['product_options']['additional_product_options']['Tenetur dolor labore']);
結果是我們想要刪除密鑰......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.