簡體   English   中英

PHP數組未設置無法正常工作

[英]php array unset not working

我有一個稱為“值”的多維數組。 這就是var_dump($values)現在的樣子。

array(1) { 
    [0]=> array(3) { 
        ["content"]=> array(1) { 
            ["items"]=> array(4) { 
                [0]=> string(4) "3121" 
                [1]=> string(4) "3116" 
                [2]=> string(4) "3115" 
                [3]=> string(4) "3114" 
            } 
        } 
        ["options"]=> array(8) { 
            ["title"]=> string(7) "inherit" 
            ["size"]=> string(4) "tiny" 
            ["orderby"]=> string(4) "date" 
            ["order"]=> string(4) "desc" 
            ["filter"]=> string(8) "category" 
            ["pagination"]=> bool(false) 
            ["per_page"]=> int(12) 
            ["content"]=> array(3) { 
                [0]=> string(5) "title" 
                [1]=> string(7) "excerpt" 
                [2]=> string(4) "tags" 
            } 
        } 
        ["__version"]=> string(5) "2.3.1" 
    }
}

這是我用來取消設置值的代碼

 //before unset
    var_dump($values);

    $ID = "3121";
    foreach ($values as $value) {
                    foreach($value['content']['items'] as $key => $val) {               
                    if($val == $ID) {
                     unset($value['content']['items'][$key]);
                     }
                    }
        }

   //after unset
    var_dump($values);

即使未設置,我的var_dump也看起來相同。 我認為未設置數組無法正常工作。 有人可以告訴我我的代碼有什么問題嗎?

在php數組中按值傳遞,而不是按引用傳遞

 foreach ($values as $value) {

 foreach ($values as &$value) {

有關相關文檔,請參見此處

您沒有在for循環中放入$key變量,並且要更改值,您必須使用引用

foreach ($values as &$value) {
  foreach($value['content']['items'] as $key => $val) {               
      if($val == $ID) {
          unset($value['content']['items'][$key]);
      }
  }
}

foreach ($values as &$value)

暫無
暫無

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

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