2

我在 Joomla 数据库中有一些信息需要循环访问并提取某些信息。

我可以成功地循环浏览文章,但我无法从 [image] 中获取信息。如果可能的话,我只需要提取“image_intro”:“image/banner_box.jpg”就可以了“banner_box.jpg”。

到目前为止,我的代码循环通过数据库。

foreach ($result as $item) {
                    //makes array
                    $newsitems[] = array(
                        'title' => $item->title,
                        'text'  => $item->introtext,
                        'image' => $item->images

                    );                  
                }

我的输出打印出来了。

Array
(
    [0] => Array
        (
            [title] => Service 2
            [text] => <p>Lorem ipsum dolor sit amet, conseteetur sadipscing elitr, sed diam monumy eirmod..<a href="http://www.google.co.uk">View more</a></p>
            [image] => {"image_intro":"images\/banner_box2.jpg","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}
        )

    [1] => Array
        (
            [title] => Service 1 
            [text] => <p>Lorem ipsum dolor sit amet, conseteetur sadipscing elitr, sed diam monumy eirmod..<a href="http://www.google.co.uk">View more</a></p>
            [image] => {"image_intro":"images\/banner_box1.jpg","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}
        )

)

谢谢大家。

4

3 回答 3

3

$item->images 是json格式,所以需要解码

foreach ($result as $item) {
    $imgData = json_decode($item->images, true);

    // create array
    $newsitems[] = array(
        'title' => $item->title,
        'text'  => $item->introtext,
        'image' => $imgData['image_intro']
    );                  
}
于 2013-03-11T11:40:52.390 回答
2

该数据以json格式编码。您需要使用json_decode()对其进行解码。您的代码将如下所示(在您的循环内):

$images_data = json_decode($item->images);

然后,您可以像这样访问对象的属性:$images_data->images_intro.

于 2013-03-11T11:40:22.840 回答
2

尝试使用json_decode(),例如:

$decoded = json_decode($newsitems[0]['image'], true); //make it array for later access
于 2013-03-11T11:40:34.883 回答