2016-11-14 5 views
0

私はCodeigniter 3を使用しており、APIからデータを取得しています。私はcodeigniter配列jsonとflashdata

// VIEW FILENAME: new.php 
$this->session->set_flashdata('message', $myArray); 

を:私は$myArray = json_decode($theBody, true);

array(2) { 
    ["status"]=> 
    string(7) "failure" 
    ["message"]=> 
    array(2) { 
    ["entry_name"]=> 
    string(61) "The entry_name field must be at least 8 characters in length." 
    ["entry_body"]=> 
    string(61) "The entry_body field must be at least 8 characters in length." 
    } 
} 

を通じて原点JSONデータを渡した後、APIは、私は今、次のように私がいる私の見解にflashdataを経由して、そのエラーメッセージを渡したい下記戻りますビュー、私はこの実行すると:

 echo "<pre>"; 
     echo var_dump($this->session->flashdata('message')); 
     echo "</pre>"; 

を私が期待される出力(上記と同じ)を取得:

array(2) { 
    ["status"]=> 
    string(7) "failure" 
    ["message"]=> 
    array(2) { 
    ["entry_name"]=> 
    string(61) "The entry_name field must be at least 8 characters in length." 
    ["entry_body"]=> 
    string(61) "The entry_body field must be at least 8 characters in length." 
    } 
} 

しかし、どのようにして配列を反復処理できますか?

は、どのように私は感謝["status"]["message"]

任意のポインタの内容を参照することができます。

答えて

2

変数の値を取ると、次のように配列の値に移動します。ゼロは配列ポインタの[0]フロントを追加するインデックスを作成した場合

$flashData = $this->session->flashdata('message'); 
$status = $flashData['status']; 
$message = $flashData['message']; 
$entry_name = $flashData['message']['entry_name']; 
$entry_body = $flashData['message']['entry_body']; 

は、そのスルー来てどのように配列を確認してください。 (例:$flashData[0]['entry_name']

2

フラッシュデータフィールドには、連想配列があるため、そのキーでアクセスできます。

$flashdata = $this->session->flashdata('message'); 
$status = $flashdata['status']; 

messageは配列で、値をフェッチするために配列全体を繰り返します。

foreach($flashdata['message'] as $key => $value){ 
    echo $value; 
} 
+0

はあなたの提案をありがとう – Vikrant

+0

あなたの答えにいくつかの有用な説明を追加します。私は自分の答えを編集しました。 –