Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 循环JSON图像-在高级自定义字段上_Php_Arrays_Json_Advanced Custom Fields - Fatal编程技术网

Php 循环JSON图像-在高级自定义字段上

Php 循环JSON图像-在高级自定义字段上,php,arrays,json,advanced-custom-fields,Php,Arrays,Json,Advanced Custom Fields,我正在使用CPT工具通过高级自定义字段将API调用到WordPress中。当调用我的函数时,我有22个基于JSON响应的字段,然后我用这些字段创建了一篇文章。我需要将每个图像URI放在一个单独的字段中,但是我的ImagesURI只将排名第16的ImageURI拉入每个图像URI中。这是我的代码,我创建了一个Foreach循环来访问JSON数组中的数组,大约每辆车有16个图像 $response = json_decode($json_data, true);

我正在使用CPT工具通过高级自定义字段将API调用到WordPress中。当调用我的函数时,我有22个基于JSON响应的字段,然后我用这些字段创建了一篇文章。我需要将每个图像URI放在一个单独的字段中,但是我的ImagesURI只将排名第16的ImageURI拉入每个图像URI中。这是我的代码,我创建了一个Foreach循环来访问JSON数组中的数组,大约每辆车有16个图像

    $response = json_decode($json_data, true);
                foreach ($response as $index => $car) {
                    $car['BasicPrice'];
                    $car['BodyStyle']['BodyStyle'];
                    $car['Colour'];
                    $car['EngineNumber'];
                    $car['EngineSize'];
                    $car['FuelType']['FuelType'];
                    $car['HasServiceHistory'];
                    $car['IsNew'];
                    $car['InternetPrice'];
                    $car['IsReserved'];
                    $car['Make']['Make'];
                    $car['Model']['Model'];
                    $car['Odometer'];
                    $car['PhotoCount'];
                    $car['PreviousOwners'];
                    $car['RegistrationNumber'];
                    $car['RetailPrice'];
                    $car['Specification']['Doors'];
                    $car['StockNumber'];
                    $car['Transmission']['Transmission'];

                    foreach ($car['Images'] as $images ) {
                        $images['ImageURI'];

                    }

                }


            if (!is_array($response) || empty($response)) {
                return false;
            }


$car[] = $response;

foreach ($car[0] as $car) {

    $vehicle_slug = sanitize_title($car['Colour'] .'-'. $car['Make']['Make'] . '-' . $car['Model']['Model'] . '-' . $car['StockNumber']);

    $existing_car = get_page_by_path($vehicle_slug, 'OBJECT', 'Vehicle');

    if ($existing_car === null) {

        $inserted_car = wp_insert_post([
            'post_name' => $vehicle_slug,
            'post_title' => $vehicle_slug,
            'post_type' => 'Vehicle',
            'post_status' => 'publish'
        ]);

        if (is_wp_error($inserted_car)) {
            continue;
        }

        $fillable = [
            'field_5d665d2055d00' => $car['BasicPrice'],
            'field_5d665d2a55d01' => $car['BodyStyle']['BodyStyle'],
            'field_5d665d3155d02' => $car['Colour'],
            'field_5d665d3955d03' => $car['EngineNumber'],
            'field_5d665d4255d04' => $car['EngineSize'],
            'field_5d665d4c55d05' => $car['FuelType']['FuelType'],
            'field_5d665d5055d06' => $car['HasServiceHistory'],
            'field_5d679b5c4a0de' => $images['ImageURI'][0],
            'field_5d67f07329f3b' => $images['ImageURI'][1],
            'field_5d67f4dfeb0dd' => $images['ImageURI'][2],
            'field_5d665d5755d07' => $car['IsNew'],
            'field_5d665d6255d08' => $car['InternetPrice'],
            'field_5d665d6c55d09' => $car['IsReserved'],
            'field_5d665d8955d0a' => $car['Make']['Make'],
            'field_5d665d9255d0b' => $car['Model']['Model'],
            'field_5d665d9855d0c' => $car['Odometer'],
            'field_5d665da055d0d' => $car['PhotoCount'],
            'field_5d665da955d0e' => $car['PreviousOwners'],
            'field_5d665db155d0f' => $car['RegistrationNumber'],
            'field_5d665db855d10' => $car['RetailPrice'],
            'field_5d665dc055d11' => $car['Specification']['Doors'],
            'field_5d665dc755d12' => $car['StockNumber'],
            'field_5d665ddc55d13' => $car['Transmission']['Transmission'],


        ];

        foreach ($fillable as $key => $car['BasicPrice']) {
            update_field($key, $car['BasicPrice'], $inserted_car);
        }
    } else {

        $existing_car_id = $car['StockNumber'];
        $existing_car_newer = get_field($car['StockNumber'], $existing_car_id);


        if ($car['StockNumber'] >= $existing_car_newer) {
            // Update Our Post Meta
            $fillable = [
                'field_5d665d2055d00' => $car['BasicPrice'],
                'field_5d665d2a55d01' => $car['BodyStyle']['BodyStyle'],
                'field_5d665d3155d02' => $car['Colour'],
                'field_5d665d3955d03' => $car['EngineNumber'],
                'field_5d665d4255d04' => $car['EngineSize'],
                'field_5d665d4c55d05' => $car['FuelType']['FuelType'],
                'field_5d665d5055d06' => $car['HasServiceHistory'],
                'field_5d679b5c4a0de' => $images['ImageURI'][0],
                'field_5d67f07329f3b' => $images['ImageURI'][1],
                'field_5d67f4dfeb0dd' => $images['ImageURI'][2],
                'field_5d665d5755d07' => $car['IsNew'],
                'field_5d665d6255d08' => $car['InternetPrice'],
                'field_5d665d6c55d09' => $car['IsReserved'],
                'field_5d665d8955d0a' => $car['Make']['Make'],
                'field_5d665d9255d0b' => $car['Model']['Model'],
                'field_5d665d9855d0c' => $car['Odometer'],
                'field_5d665da055d0d' => $car['PhotoCount'],
                'field_5d665da955d0e' => $car['PreviousOwners'],
                'field_5d665db155d0f' => $car['RegistrationNumber'],
                'field_5d665db855d10' => $car['RetailPrice'],
                'field_5d665dc055d11' => $car['Specification']['Doors'],
                'field_5d665dc755d12' => $car['StockNumber'],
                'field_5d665ddc55d13' => $car['Transmission']['Transmission'],


            ];

            foreach ($fillable as $key => $car['BasicPrice']) {
                update_field($key, $car['BasicPrice'], $existing_car_id);
            }
        }
    }
}
当我调用我的函数时,它会填充作为测试的三个图像字段,但使用相同的URL。我如何循环,使它注册每个“ImageURI”操作,提前谢谢

以下是我的JSON:

{
    "BasicPrice": 4995.83,
    "BodyStyle": {
        "BodyStyle": "3 DR",
        "BodyStyle_UID": "4cf50fe2-8c3f-e611-80cb-0a94ef0355af"
    },
    "Colour": "Red 'n' Roll",
    "DaysInStock": 1029,
    "DaysInStockGroup": 1029,
    "Discount": 0.00,
    "EngineNumber": "B12XER-19MV2339",
    "EngineSize": 1229,
    "EstimatedDeliveryDate": "2016-11-04T00:00:00",
    "FuelType": {
        "FuelType": "Petrol",
        "FuelType_UID": "9cd0d601-bb1f-409d-b04d-4255ff47dc85"
    },
    "HasServiceHistory": false,
    "Images": [
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 1,
            "Image_UID": "2088e32e-d46a-42c2-8412-3802743bcc06",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=1&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 2,
            "Image_UID": "590cdfa2-d791-4414-bbb4-e5fbe7a5ac80",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=2&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 3,
            "Image_UID": "038674d1-f32e-40ac-90bf-fad4d3b25e7f",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=3&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 4,
            "Image_UID": "9e4d36b0-7e9d-4159-9315-548e30835aa4",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=4&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 5,
            "Image_UID": "c3ad8b52-df16-4925-b8f2-6434a1d3ece6",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=5&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 6,
            "Image_UID": "b5e66c41-a76e-4cd2-a535-623715e19961",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=6&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 7,
            "Image_UID": "6ce8cb63-4cee-4451-abd6-abc367d9f1d2",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=7&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 8,
            "Image_UID": "7b5ecc82-b8ea-4af4-85d6-1ab13c527edf",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=8&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 9,
            "Image_UID": "a1b2dae3-342f-4917-b7d8-6d9135bb8966",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=9&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 10,
            "Image_UID": "a6e1fce8-7bf9-4570-898b-91aa368c889d",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=10&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 11,
            "Image_UID": "0587afe6-4d95-4ce3-b571-0c1bc894516f",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=11&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 12,
            "Image_UID": "5b4713c8-37c9-4702-937c-4938c95bbee9",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=12&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 13,
            "Image_UID": "6c6a83d9-0782-42c6-a1fe-2d14272c7832",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=13&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 14,
            "Image_UID": "6e8a2171-e85a-4afd-a4fb-e70eeab38d10",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=14&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 15,
            "Image_UID": "f60e84ab-91bf-494d-9a54-0ad27615135a",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=15&Width=960",
            "ImageWidth": 960
        },
        {
            "Entity_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
            "ImageNumber": 16,
            "Image_UID": "bfe311ca-4a62-4518-b27f-4d1473386741",
            "ImageURI": "https://vehiclestock-public.pinnacledms.net/ViewVehiclePhoto.aspx?BUID=a3db2a66-b4fb-4ac2-a78a-0f042aab50af&VUID=8be4d43d-e3a4-e611-80cf-0a94ef0355af&Rank=16&Width=960",
            "ImageWidth": 960
        }
    ],
    "Interior": {
        "Interior": "",
        "Interior_UID": "05f50fe2-8c3f-e611-80cb-0a94ef0355af"
    },
    "IsNew": false,
    "InternetPrice": 0.00,
    "IsQualifying": true,
    "IsReserved": false,
    "Location": "Autospray",
    "Make": {
        "FranchiseModel": null,
        "Make": "Vauxhall",
        "Make_UID": "ac84ccae-882d-e611-80ca-0a94ef0355af"
    },
    "ManufacturerRecommendedRetailPrice": 0.00,
    "Model": {
        "Make_UID": "ac84ccae-882d-e611-80ca-0a94ef0355af",
        "Model": "Adam",
        "Model_UID": "cb34d5c0-5c3f-e611-80cb-0a94ef0355af"
    },
    "Odometer": 13582,
    "Options": [],
    "OrganisationalUnit": {
        "Address": {
            "Address1": "Blackhouse Circle",
            "Address2": "Blackhouse Industrial Estate",
            "Address3": "",
            "Country": null,
            "County": "Aberdeen",
            "PostCode": "AB42 1BN",
            "PostTown": "Peterhead"
        },
        "Description": "Gillanders Motors Ltd.",
        "EmailAddress": "email@gillanders.co.uk",
        "OrganisationalUnit_UID": "a3db2a66-b4fb-4ac2-a78a-0f042aab50af",
        "ParentOrganisationalUnit_UID": "51a9312b-1462-4b7c-aee3-319d6d86ecec",
        "Telephone": "01779 479777"
    },
    "PhotoCount": 16,
    "PhysicalLocation": {
        "DealerCode": "",
        "Description": "Gillanders Motors Ltd.",
        "LocationDescription": "Autospray",
        "OrganisationalUnit": {
            "Address": {
                "Address1": "Blackhouse Circle",
                "Address2": "Blackhouse Industrial Estate",
                "Address3": "",
                "Country": null,
                "County": "Aberdeen",
                "PostCode": "AB42 1BN",
                "PostTown": "Peterhead"
            },
            "Description": "Gillanders Motors Ltd.",
            "EmailAddress": "email@gillanders.co.uk",
            "OrganisationalUnit_UID": "a3db2a66-b4fb-4ac2-a78a-0f042aab50af",
            "ParentOrganisationalUnit_UID": "51a9312b-1462-4b7c-aee3-319d6d86ecec",
            "Telephone": "01779 479777"
        },
        "UID": "a3db2a66-b4fb-4ac2-a78a-0f042aab50af"
    },
    "PreviousOwners": 0,
    "Profiles": [
        {
            "Description": "Long Term Loan",
            "UID": "fe8b7140-87e0-4784-88b1-d607865be492"
        }
    ],
    "RegistrationDate": "2016-10-31T00:00:00",
    "RegistrationNumber": "SW66 EZH",
    "RetailPrice": 5995.00,
    "Specification": {
        "Doors": 0,
        "Specification": "Jam",
        "Specification_UID": "8795a7e0-e1a4-e611-80cf-0a94ef0355af"
    },
    "Status": 0,
    "StockNumber": "U1211",
    "Transmission": {
        "Transmission": "5 Speed Manual Petrol",
        "Transmission_UID": "707ad700-1318-4e57-88aa-6fb19e58f6d0"
    },
    "UnitOfDistance": 0,
    "Vehicle_UID": "8be4d43d-e3a4-e611-80cf-0a94ef0355af",
    "VehicleCode": "VAAD12JAM3HPIM                          ",
    "VehicleType": 1,
    "VideoCount": 1,
    "Videos": [
        {
            "Identifier": "GxobtgbP1yc",
            "UploadedDate": "2016-11-14T13:39:07.543",
            "User": null,
            "User_UID": "ef891044-ce8a-489f-bddf-cea4511c3c52",
            "Video_UID": "00000000-0000-0000-0000-000000000000",
            "VideoURL": "https://www.youtube.com/embed/GxobtgbP1yc?showinfo=0&modestbranding=1&rel=0&autoplay=0&autohide=1"
        }
    ],
    "VIN": "W0L0MAP08G6082024"
},

在发布问题之前,您应该注意编写MRE(最小、可复制的示例,另请参见),例如删除不有用的细节,以使认真回答问题的人能够专注于真正的问题……所有的
$car['***']是什么-行和
$images['ImageURI']该怎么办?您没有将其传递给函数或存储在任何变量中。这些行和循环是完全没有意义的,因为你实际上没有在其中做任何事情。我不想在这个问题中添加太多代码,我将添加更多代码。感谢您的建议$car['**]允许我将我的json数据调用到wordpress高级自定义字段。但这适用于我的“$images['ImageURI'];”似乎只从每个cart中获取一个值,这些行不允许您执行任何没有它们就无法执行的操作。仅仅写一个变量本身并没有任何作用。如果从循环中删除变量,仍然会得到完全相同的结果。同样,在循环之后,
$car
-变量将只包含响应的最后一条记录。