2017-06-07 20 views
1

Webプロジェクトに動的なページ数があります。それはデータベースのデータに依存します。私は1ページまたは10ページを持っているかもしれません。私は各ページで選択したデータをセッションに入れ、最後に配列を作成したい。現時点では、私は4つの配列からJSONを構築しています。 (セッション内のすべてのキーは昇順でレベル+ INTあるセッションxが、私は6+レベル上の任意のデータはありません欠落している場合。)json_encode($配列)の出力の動的な配列の数からPHPを構築する

$level1 = array(); 
$level2 = array(); 
$level3 = array(); 
$level4 = array(); 

if (isset($_SESSION['level1'])) { 
    $level1 = $_SESSION['level1']; 
} 
//the same for 3 more levels in session 


$array = array(
    "first" => ($level1), 
    "second" => ($level2), 
    "third" => ($level3), 
    "fourth" => ($level4) 
); 

json_encode($array); 

例:

{"first":["1","2"],"second":["4","6","8","9"],"third":["13","14","17","18"],"fourth":["33","34","35","36"]} 

私はjson_encodeがarray_push()でどのように動作するかを調べようとしましたが、JSONオブジェクトの配列は1つのjsonオブジェクトではなく配列になっています。

$result = array(); 
array_push($result, ["key1" => $_SESSION["level1"]]); 
array_push($result, ["key2" => $_SESSION["level2"]]); 
array_push($result, ["key3" => $_SESSION["level3"]]); 

echo json_encode($result); 

と出力:

[{"key1":["1","2"]},{"key2":["4","5","6"]},{"key3":["13","14","15"]}] 

私は繰り返し、すべてを行いますが、私はそれではなくJSONsの配列の1つのJSONオブジェクトを作成することが可能であるかどうかを知りたいです。ありがとう!

答えて

2

あなただけの機能を必要とせずに配列にキーを追加することができます。

$result = array(); 
$result["key1"] = $_SESSION["level1"]; 
$result["key2"] = $_SESSION["level2"]; 
$result["key3"] = $_SESSION["level3"]; 

echo json_encode($result); 
+0

ありがとうございました!これは私の質問を解決しました!私はあなたの答えを受け入れることができるでしょう。 –

関連する問題