php阵列未设置无法正常工作

Gir*_*iri 0 php multidimensional-array

我有一个名为"values"的多维数组.这就是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" 
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我用来取消设置值的代码

 //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);
Run Code Online (Sandbox Code Playgroud)

即使在未设置之后,我的var_dump看起来也一样.我认为我的阵列没有设置不起作用.有人能告诉我我的代码有什么问题吗?

Ora*_*ill 6

在PHP中,数组是通过值而不是通过引用更改来传递的

 foreach ($values as $value) {
Run Code Online (Sandbox Code Playgroud)

 foreach ($values as &$value) {
Run Code Online (Sandbox Code Playgroud)

请参阅此处了解相关文档.