PHP JSON декодировать из базы данных - PullRequest
1 голос
/ 18 сентября 2011

У меня есть это json encode в базе данных, и я хочу только значения эха name_r в foreach, как это?

[{
    "name_r": "saeed",
    "units": ["salam", "11", "11", "khobe", "22", "22", "salam"],
    "price_change": ["33", "33", "33", "44", "44", "44"]
}, {
    "name_r": "salavat",
    "units": ["55", "55", "khobe", "66", "66"],
    "price_change": ["77", "77", "77", "88", "88", "88", "99", "99", "99"]
}]

это мой php, с ошибкой (Message: Undefined index: name_r - Line Number: 179):

$query = $this->db->query("SELECT * FROM table ORDER BY id desc");
    $data = array();
    foreach ($query->result() as $row)
    {
        $data[] = json_decode($row->residence,true);
        echo $data["name_r"].'<br>'; //Line Number: 179
    }

Ответы [ 3 ]

3 голосов
/ 18 сентября 2011

При условии, что предоставленные вами данные json_encoded хранятся в одной строке базы данных, json_decode предоставит вам массив массивов. Чтобы отобразить все поля name_r, вам необходимо:

foreach ($query->result() as $row){
    $data = json_decode($row->residence,true);
    foreach($data as $datum){
        echo $datum['name_r'];
    }
}
2 голосов
/ 18 сентября 2011

Вы использовали [] в своем назначении.Это означает, что результат json_decode будет помещен в конец вашего массива.

Использование var_dump($data) должно помочь вам понять, как на самом деле выглядит ваш массив, и решить вашу проблему самостоятельно.

0 голосов
/ 18 сентября 2011

Предполагая, что пример JSON, который вы показали, это данные из одной записи. Данные представляют собой массив объектов, поэтому вам понадобятся внутренние циклы, которые зацикливаются на массиве из каждой возвращаемой записи.

foreach ($row->residence as &$value) {
    $data = json_decode($value,true);
    echo $data["name_r"].'<br>';
}

Я не PHP-разработчик, поэтому я не уверен, что мой синтаксис правильный. Но, надеюсь, вы поняли идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...