-1

分割しようとしているCookieがあります。Cookieの形式は次のとおりです。

key = val1、val2、val3(各値はコンマで区切られます)

これをループに分割して、val3に直接アクセスできるようにする方法はありますか?

explode()関数を使用しようとしましたが、成功しませんでした。

for ($i = 0; $i < count($_COOKIE); $i++)
{
    $ind = key($_COOKIE);
    $data = $_COOKIE[$ind];

    //I try and slit the cookie here
    $cookie_temp = explode(",",$_COOKIE[$ind]);

    //Here is where I wanted to display Val3 from the cookie
    print $cookie_temp[2];

    next($_COOKIE);
} 

私のコードは正常に機能しますが、最終的にはすべてのVal3が大きな配列になります。たとえば、私のval3は数値であり、配列に入れられます。これをさらに分割できますか?

4

2 に答える 2

2

まず第一に、あなたが価値を得ようとしているクッキーの名前を知っていることを願っています。mycookie私の答えの残りの部分でそれを呼びましょう。

次に、ループ全体を廃棄して$_COOKIE['mycookie']直接アクセスします。

次に、を呼び出しexplode(",",$_COOKIE['mycookie'])て個別の値を取得できます。

[2]次に、現在のコードと同じようにインデックス2を取得します。

ショートカットとして、2番目のものだけが必要な場合:

list(,,$val) = explode(",",$_COOKIE['mycookie']);
于 2012-04-08T22:24:20.000 に答える
0

複数のコンマ区切りのCookieキー/値グループがあるためにループしていると仮定すると、foreach()代わりにを使用list()して、直接割り当てで3番目の値を取得できます。

foreach ($_COOKIE as $key=>$value) {
  list($v1, $v2, $v3) = explode("," $value);
  echo $v3;
}

アクセスするCookie値が1つしかない場合は、ループする必要はなく、直接呼び出すことができます。explode(",", $_COOKIE['key'])

PHP 5.4では配列の逆参照が可能であり、呼び出しから配列要素に直接アクセスできますが、explode()これは以前のPHPバージョンでは機能しません。

echo explode(",", $_COOKIE['key'])[2];
于 2012-04-08T22:24:33.130 に答える