codeigniter数组json和flashdata

时间:2016-11-14 04:42:50

标签: php arrays json codeigniter session-variables

我正在使用 Codeigniter 3 并从API获取数据。在我通过原始json数据传递$myArray = json_decode($theBody, true);

之后,API返回以下内容
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 个答案:

答案 0 :(得分: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']

答案 1 :(得分:2)

您可以通过键来访问flashdata字段,因为它是一个关联数组。

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

由于message是一个数组,因此遍历数组以获取其值。

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