存储位于对象内部的数组

时间:2013-02-19 06:32:27

标签: php arrays object

我有以下JSON:

"list": {
            "list_id": "2kA",
            "title": "Social Media",
            "description": "Trending",
            "image": [
                "http://cdn.socialmediaexaminer.com/wp-content/uploads/2012/11/br-campaign-report.png?9d7bd4",
                "http://cdn.socialmediaexaminer.com/wp-content/uploads/2012/11/br-campaign-report.png?9d7bd"
            ],
            "views": 65
        }

如何在图像数据库中存储图像数组的序列化版本?执行以下任何操作都会返回错误:

$images = $item->list->image;
$images = $item->list->image->[0];
$images = $item->list->['image'];

谢谢你们!

2 个答案:

答案 0 :(得分:1)

您可以像这样访问您的图片:

foreach($item->list->image as $your_image) {
    //do what you want
}

或使用像这样的关联数组

$x = json_decode('{"list": {
            "list_id": "2kA",
            "title": "Social Media",
            "description": "Trending",
            "image": [
                "a",
                "b"
            ],
            "views": 65
        }}', true);

foreach($x['list']['image'] as $your_image) {
    //do what you want
}

将它保存到您的数据库使用json_encode(并转义),作为mysqli连接的示例

$query = 'INSERT INTO your_table (...)
          VALUES (\''.mysqli_real_escape_string($dblink, json_encode($your_array)).'\')';

on select你可以使用json_decode!

答案 1 :(得分:1)

In your DB, data is in JSON, literally it means its a formatted string like:    
"something here...."

You cannot access it by "->" as it is not an object.  

So,
Convert your string(JSON) to Object to access like these:
$x['list']['image'] 
It can be achieved by json decoding your string which will convert your string to object

There was a bad error in code too. This one : $item->list->image->[0]; 
you cannot access an element of an array like this image->[0] --> it should be 
$item->list->image[0]