2016-11-14 6 views
0

Я использую Codeigniter 3 и получаю данные от API. API возвращает ниже после того, как я передаю данные происхождения JSon через, $myArray = json_decode($theBody, true);codeigniter array 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

Благодарим вас за предложение. Я отредактировал свой ответ. –