1

ショッピングカートのセッションハンドラークラスを作成していますが、多次元の連想配列で値の一致を検索するこの特定のコードのチャンクを繰り返しています。

foreach($_SESSION['cart'] as $k => $v){

    if($v['productID'] == $productID){
        $key = $k;
        $this->found = true;
    }
}

配列内の異なる値を一致させようとするときに、これを繰り返しています。検索するキーと値を渡すメソッドを簡単に作成できますか?(今は簡単に聞こえますが、それを読み返しましたが、何らかの理由で運がありませんでした)

4

1 に答える 1

1

次のようなものが必要なようです。

function findKey(array $array, $wantedKey, $match) {
    foreach ($array as $key => $value){
        if ($value[$wantedKey] == $match) {
            return $key;
        }
    }
}

これで、次のことができます。

$key = findKey($_SESSION['cart'], 'productID', $productID);

if ($key === null) {
    // no match in the cart
} else {
    // there was a match
}
于 2013-01-14T22:38:30.057 に答える