簡體   English   中英

從請求中刪除特定的嵌套數組鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM