Php 循环JSON图像-在高级自定义字段上
我正在使用CPT工具通过高级自定义字段将API调用到WordPress中。当调用我的函数时,我有22个基于JSON响应的字段,然后我用这些字段创建了一篇文章。我需要将每个图像URI放在一个单独的字段中,但是我的ImagesURI只将排名第16的ImageURI拉入每个图像URI中。这是我的代码,我创建了一个Foreach循环来访问JSON数组中的数组,大约每辆车有16个图像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);
$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
-变量将只包含响应的最后一条记录。