2016-11-14 103 views
0

我正在使用Codeigniter 3並從API獲取數據。該API返回下方後,我通過通過原點的JSON數據,$myArray = json_decode($theBody, true);codeigniter數組json和flashdata

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." 
    } 
} 

我現在想通過flashdata來傳遞錯誤信息,以我的觀點,我做如下:

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

在我視圖,當我運行此:

 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

取值在變量並導航到陣列值如下:

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

通過檢查其如何未來,如果零索引添加[0]前數組指針數組。 (例如:$flashData[0]['entry_name']

2

您可以通過其關鍵字訪問flashdata字段,因爲它是一個關聯數組。

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

由於message是一個數組,迭代數組以獲取其值。

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

給你的答案增加一些有用的解釋 – Vikrant

+0

謝謝你的建議。我編輯了我的答案。 –