Как добавить декодированное значение JSON в массив внутри цикла

У меня есть объект json, который выглядит так:

"{"image_intro":"images\/leden\/vannoord.png","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}"

Я зацикливаю элементы, каждый из которых имеет подобный объект, однако я хочу отправить URL-адрес изображения в файл JavaScript и не могу использовать его таким образом.

Поэтому я использую следующий код, чтобы получить читаемый URL:

   $bedrijfimage = $bedrijven['images'];
$bedrijfimg = json_decode($bedrijfimage);

if($bedrijfimg->image_intro != ''){
$bedrijvenimage = '../cms/'.$bedrijfimg->image_intro;
}else{
$bedrijvenimage = '../images/logo_ovn.png';
}

Это прекрасно работает, за исключением того, что я хочу добавить результат в мой массив и не могу объединить их, или результат загружается в отдельный массив после моего основного массива, или он создает отдельный массив для каждого изображения.

Это мой текущий код:

$bedrijven            = "SELECT
cnt.id, cnt.title, cnt.introtext, cnt.ordering, cnt.images, cnt.alias, cnt.requested, cnt.lat, cnt.lng, cnt.state, f.item_id,
MAX(CASE WHEN f.field_id = 3 THEN f.value END) AS plaats,
MAX(CASE WHEN f.field_id = 2 THEN f.value END) AS postcode,
MAX(CASE WHEN f.field_id = 1 THEN f.value END) AS straat
FROM snm_fields_values f
JOIN snm_content cnt
ON cnt.id = f.item_id
WHERE cnt.state = 1
GROUP BY f.item_id
ORDER BY f.item_id, plaats, straat, postcode";
$bedrijvencon       = $conn->query($bedrijven);
$bedrijvenarray = [];

while($bedrijven    = $bedrijvencon->fetch_assoc()){
$straatnaam = '';
$plaatsnaam = '';
// Stop $bedrijven in een array
array_push($bedrijvenarray, $bedrijven);
// Vervang de straatnaam spaties met plusjes voor de filegetcontents url
$straatnaam .= str_replace(' ', '+', $bedrijven['straat']);
$postcode .= str_replace(' ', '+', $bedrijven['postcode']);
$plaatsnaam .= $bedrijven['plaats'];

// Kijk of er al een plaatsnaam en straatnaam in de database bestaan bij het artikel
// $existcheck            = "// DESC snm_content";
// $existcheckcon       = $conn->query($existcheck);
// $existcheck       = $existcheckcon->fetch_assoc();

if(($bedrijven['requested'] == 0) && ($bedrijven['state'] == 1)){
$getlatlong = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=".$bedrijven['plaats'].",".$straatnaam."&key=apikey");
$latlongarray = json_decode($getlatlong);
$lat = '';
$lng = '';

// Leeg de latlong na elke loop
foreach ($latlongarray->results as $key => $latlong){
//  $latlonglijst .= $latlong->geometry->location->lat.' ';
//  $latlonglijst .= $latlong->geometry->location->lng.'<br>';
$lat .= $latlong->geometry->location->lat;
$lng .= $latlong->geometry->location->lng;
// array_push($bedrijvenarray, $lat, $lng);
//$new_array = array('lat'=>''.$lat.'', 'lng'=>''.$lng.'');

}
// Voeg lat en lng toe aan de $bedrijven array
// $bedrijven['lat'] = $new_array['lat'];
// $bedrijven['lng'] = $new_array['lng'];
// $bedrijven['intro_image'] = $image_array['intro_image'];
// $bedrijvenarray1[] = $bedrijven;$updatetable            = "UPDATE snm_content
SET requested = 1, lat = '".$lat."', lng = '".$lng."'
WHERE id = '".$bedrijven['id']."'";
$updatetablecon       = $conn->query($updatetable);

// echo $updatetable;

}else if($bedrijven['requested'] == 1){

}$bedrijfimage = $bedrijven['images'];
$bedrijfimg = json_decode($bedrijfimage);

if($bedrijfimg->image_intro != ''){
$bedrijvenimage = '../cms/'.$bedrijfimg->image_intro;
}else{
$bedrijvenimage = '../images/logo_ovn.png';
}
}
$jsonobject = json_encode($bedrijvenarray);

Который возвращает следующее, если я его зациклю:

9
:
alias
:
"van-noord-bv"id
:
"108"images
:
"{"image_intro":"images\/leden\/vannoord.png","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}"introtext
:
""item_id
:
"108"lat
:
"51.8204687"lng
:
"4.2526415"ordering
:
"4"plaats
:
"Zuidland"postcode
:
"3214 VB"requested
:
"1"state
:
"1"straat
:
"Kerkweg 9"title
:
"Van Noord bv"__proto__
:
Object

Я хотел бы изменить этот вывод и добавить ключ и значение следующим образом:

image: ../cms/images/leden/vannoord.png

Как я могу этого достичь?

0

Решение

Переместить ваш array_push($bedrijvenarray, $bedrijven); до конца тела цикла:

    $bedrijfimage = $bedrijven['images'];
$bedrijfimg = json_decode($bedrijfimage);

if($bedrijfimg->image_intro != ''){
$bedrijvenimage = '../cms/'.$bedrijfimg->image_intro;
}else{
$bedrijvenimage = '../images/logo_ovn.png';
}

$bedrijven["image"] = $bedrijvenimage;

array_push($bedrijvenarray, $bedrijven);
}
$jsonobject = json_encode($bedrijvenarray);
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector