PHP多维数组未设置

PHP多维数组未设置,php,multidimensional-array,unset,array-unset,Php,Multidimensional Array,Unset,Array Unset,我有一个多维结构数组: $_SESSION['array'] = array(1=>array("surname"=>"foofoo", "name"=>"foo"),2=> .... so on); 如果姓氏与给定变量匹配,我想删除一个条目,例如 $surname = "foofoo"; 函数应该搜索整个数组如果找到$SHANTLE,请删除该数组 我试着看了一些答案,比如在上给出的答案,但我不能清楚地理解它们,有人能给出一个清晰的方法,并提供一些好的解释,如果可能的

我有一个多维结构数组:

$_SESSION['array'] = array(1=>array("surname"=>"foofoo", "name"=>"foo"),2=> .... so on);
如果姓氏与给定变量匹配,我想删除一个条目,例如

$surname = "foofoo";
函数应该搜索整个数组如果找到$SHANTLE,请删除该数组


我试着看了一些答案,比如在上给出的答案,但我不能清楚地理解它们,有人能给出一个清晰的方法,并提供一些好的解释,如果可能的话,还可以链接到一些文档以供阅读吗?

这应该适合您:

(在这段代码中,我遍历了每个innerArray和innerArray中的每个值和键。然后我简单地检查它是否是具有正确值的正确键。如果条件为true,我将取消设置整个数组)


因此,如果
姓氏
等于
foooo
您想删除整个数组还是仅删除此元素?@Rizier包含该元素的整个数组,在给定的示例中,它应该删除数组索引“1”。非常感谢,非常清楚,我马上就得到了它!
<?php

    $_SESSION['array']= array(1=>array("surname"=>"foofoo", "name"=>"foo"), 2=>array("surname"=>"foofoo2", "name"=>"foo2"));

    foreach($_SESSION['array']as $innerArrayKey => $innerArray) {

        foreach($innerArray as $k => $v) {
            if($k == "surname" && $v == "foofoo")
                unset($_SESSION['array'][$innerArrayKey]);
        }

    }

    print_r($array);

?>
Array ( [2] => Array ( [surname] => foofoo2 [name] => foo2 ) )