首页 > 解决方案 > 在数组上使用 json_encoding

问题描述

在将数组插入数据库之前,我需要在数组上使用 json_encode。所以我的数组包含 9 个照片链接。插入数据库照片链接的正确方法是逐行。但是当我尝试开始插入它时。所有九个链接都排成一排,并且一直如此。1排9个链接,1排9个链接。而且我不知道是什么问题。

这是代码

$rota = new \DOMXPath($parser);
        $images = $rota->query("//div[@class='areapageDetail']//div[@class='areapageDetailList_item_img']//img");

        foreach ($images as $image) {
            $photos[] = $image->getAttribute("src");
        }

这是包含数组的照片 url。

我插入的方式就在下面。

foreach ($outlineUrl as $results) {
        if (strpos($results, 'http://www.daikyo.co.jp/') === 0) {
            $html = file_get_contents($results);
            $DOMParser = new \DOMDocument();
            $DOMParser->loadHTML($html);

            $changeForMyDB = [
                'region' => '関西',
                'photo' => json_encode($photos),
                'link' => json_encode($results),
                'building_name' => '',
                'price' => '',
                'old_price' => '',
                'extend' => '',
                'address' => '',
                'total_house' => '',
                'rooms' => '',
                'cons_finish' => '',
                'entry' => '',
                'balcony' => '',
                'company_name' => '',
            ];

这是代码的一部分。例如$results也是包含网站链接的数组。这没有问题。我可以逐行插入 $results 数组链接。但不是照片链接。为什么仅针对照片链接会发生这种情况?

标签: phplaravellaravel-5

解决方案


在这种情况下,您还必须为每张照片编制索引

$i = 0;
foreach ($outlineUrl as $results) {
    if (strpos($results, 'http://www.daikyo.co.jp/') === 0) {
        $html = file_get_contents($results);
        $DOMParser = new \DOMDocument();
        $DOMParser->loadHTML($html);

        $changeForMyDB = [
            'region' => '関西',
            'photo' => json_encode($photos[$i]),
            'link' => json_encode($results),
            'building_name' => '',
            'price' => '',
            'old_price' => '',
            'extend' => '',
            'address' => '',
            'total_house' => '',
            'rooms' => '',
            'cons_finish' => '',
            'entry' => '',
            'balcony' => '',
            'company_name' => '',
        ];
    }
    $i++;
}

您还必须确保照片数量与您的 outlineurl 数组相匹配。


推荐阅读