ホームページ >バックエンド開発 >PHPチュートリアル >SESSIONストレージの多次元配列の問題

SESSIONストレージの多次元配列の問題

WBOY
WBOYオリジナル
2016-06-23 13:28:251196ブラウズ

要件は、最近アクセスしたカテゴリ ID (3) を SESSION に保存することです

次に、データベースをループして、対応するカテゴリ名を取得します

まず、取得した 3 つのカテゴリ ID を配列に入れてセッションに保存します
次にそれを取り出して配列にプッシュします
ここで問題は、取り出したデータが私が望む 2 次元配列ではないことです
これが私のコードです:

session_start();$cate1 = $_GET['cate1'];$cate2 = $_GET['cate2'];$cate3 = $_GET['cate3'];$data[] = array('cate1'=>$cate1,'cate2'=>$cate2,'cate3'=>$cate3);if($_SESSION['cate']){	$data[] = $_SESSION['cate'];}$_SESSION['cate'] = $data;


これは 3 回目のアクセス戻りデータです:
array(2) {  [0]=>  array(3) {    ["cate1"]=>    string(2) "35"    ["cate2"]=>    string(2) "43"    ["cate3"]=>    string(2) "12"  }  [1]=>  array(2) {    [0]=>    array(3) {      ["cate1"]=>      string(2) "35"      ["cate2"]=>      string(2) "43"      ["cate3"]=>      string(2) "12"    }    [1]=>    array(2) {      [0]=>      array(3) {        ["cate1"]=>        string(2) "95"        ["cate2"]=>        string(2) "64"        ["cate3"]=>        string(2) "13"      }      [1]=>      array(2) {        [0]=>        array(3) {          ["cate1"]=>          string(2) "95"          ["cate2"]=>          string(2) "64"          ["cate3"]=>          string(2) "13"        }        [1]=>        array(1) {          [0]=>          array(3) {            ["cate1"]=>            string(2) "55"            ["cate2"]=>            string(2) "24"            ["cate3"]=>            string(2) "43"          }        }      }    }  }}

This結果はとても悲しいです


ディスカッションへの返信 (解決策)

session_start();$cate1 = $_GET['cate1'];$cate2 = $_GET['cate2'];$cate3 = $_GET['cate3'];$data = array('cate1'=>$cate1,'cate2'=>$cate2,'cate3'=>$cate3);if($_SESSION['cate']){    $data = $_SESSION['cate'];} $_SESSION['cate'] = $data;

これもうまくいきません。 1 次元配列

http://localhost/test?cate1=23&cate2=34&cate3=45
http://localhost/test?cate1=24&cate2=35&cate3=46
2 回リクエストしたところ、このデータが返されました

array(3) {  ["cate1"]=>  string(2) "23"  ["cate2"]=>  string(2) "34"  ["cate3"]=>  string(2) "45"}


そうであることを願っています
array(3) {[0]=>{    ["cate1"]=>  string(2) "23"  ["cate2"]=>  string(2) "34"  ["cate3"]=>  string(2) "45"}[1]=>{    ["cate1"]=>  string(2) "24"  ["cate2"]=>  string(2) "35"  ["cate3"]=>  string(2) "46"}}


ご返信ありがとうございます、もう一度確認してください

session_start();if(! isset($_SESSION['cate']) ) $_SESSION['cate'] = array();$cate1 = $_GET['cate1'];$cate2 = $_GET['cate2'];$cate3 = $_GET['cate3'];$_SESSION['cate'][] = array('cate1'=>$cate1,'cate2'=>$cate2,'cate3'=>$cate3);

くそー、とても簡単です...考えるのが難しすぎます、モデレータさん、ありがとうございます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。