2016-02-28 2 views
2

У меня проблема с JSON, который я создаю в PHP; Я создаю массив в цикле while из запроса sql. $featuresCSV - это строка с разделителями-запятыми, например "1,3,4". В JSON мне нужно, чтобы это закончилось, как feature-1: 1,feature-2: 1,feature-3: 1. 1 представляет true для моего флажка в моей интерфейсной программе.синтаксис многомерного массива php json

while ($stmt2->fetch()) { 

    $features = array(); 
    $featuresTmp = explode(',', $featuresCSV, -1); 

    foreach ($featuresTmp as &$featureItem) { 
    $features[] = array("feature-" . $featureItem => 1); 
    } 

    $items[] = array('price' => $price, 'image' => $image, 'features' => $features); 
} 
... 
json_encode($output); 

JSON заканчивает тем, как это:

{"price":8900, 
"image":"4d3f22fe-9f1a-4a7e-a564-993c821b2279.jpg", 
"features":[{"feature-1":1},{"feature-2":1}]} 

, но мне нужно, чтобы выглядеть следующим образом:

{"price":8900, 
"image":"4d3f22fe-9f1a-4a7e-a564-993c821b2279.jpg", 
"features":[{"feature-1":1,"feature-2":1}]} 

Обратите внимание, как feature-1 и feature-2 не разделены скобки в второй.

ответ

2

Вам необходимо назначить элементы в «feature-1» и «feature-2».

foreach ($featuresTmp as &$featureItem) { 
    $features["feature-" . $featureItem] = 1; 
} 

$feature[] = ... Синтаксис для добавления в конец массива.

0

Здесь я идти

while ($stmt2->fetch()) { 

$features = array(); 
$featuresTmp = explode(',', $featuresCSV, -1); 


foreach ($featuresTmp as &$featureItem) { 
$features["feature-$featureItem"] = 1; 
} 

$items[] = array('price' => $price, 'image' => $image, 'features' => $features); 
} 
... 
json_encode($output); 
Смежные вопросы