2016-11-14 102 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

谢谢你的建议。我编辑了我的答案。 –