1

私は構造の多次元配列を持っています:

$_SESSION['array'] = array(1=>array("surname"=>"foofoo", "name"=>"foo"),2=> .... so on);

姓が特定の変数と一致する場合、エントリを削除したい

$surname = "foofoo";

$surname が見つかった場合、関数は配列全体を検索し、その配列を削除する必要があります

ここここで与えられたようないくつかの回答を見てみましたが、明確に理解できませんでした.

4

1 に答える 1

1

これはあなたのために働くはずです:

(このコードでは、各 innerArray と、innerArray の各値とキーを調べます。次に、それが正しい値を持つ正しいキーであるかどうかを簡単に確認します。条件が true の場合、配列全体を設定解除します)

<?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 ) )
于 2014-12-18T21:23:41.347 に答える