簡體   English   中英

刪除多維數組中的鍵

[英]Remove key in multidimensional array

我想刪除鍵[價格],但我用於刪除的功能在這種情況下不起作用

我有:

Array(
       [Values] => 1
       [Product] => Array( 
                           [Details] => Array( 
                                              [ID] => 1
                                              [Price] => Array(
                                                              )
                                             )
                         )
    )

我的目標是:

Array(
       [Values] => 1
       [Product] => Array( 
                           [Details] => Array( 
                                              [ID] => 1
                                             )
                         )
    )

我用它來去除:

function remove_key($array, $key)
        {
            foreach($array as $k => $v) {

                if(is_array($v)) {
                    $array[$k] = remove_key($v, $key);
                } elseif($k == $key) {
                    unset($array[$k]);
                }
            }
            return $array;
        }

$array = remove_key($array,'Price');

怎么了

<?php
$array = Array(
    'Values' => 1,
 'Product' => Array(
    'Details' => Array(
        'id' => 1,
        'Price' => Array(
)
      )
   )
);



unset($array['Product']['Details']['Price']);
echo "<pre>";
print_r($array);
echo "</pre>";

輸出為:

Array
(
    [Values] => 1
    [Product] => Array
        (
            [Details] => Array
                (
                    [id] => 1
                )

        )

)

因此,如果要修復函數,則必須先添加另一個條件( if這樣的話&& $k != $key因為您沒有進入elseif並且未調用unset

  function remove_key($array, $key)
        {
            foreach($array as $k => $v) {
                if(is_array($v) && $k != $key) {
                    $array[$k] = remove_key($v, $key);
                } elseif($k == $key) {
                    unset($array[$k]);
                }
            }
            return $array;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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