массив $ установки [ 'ВидСчета']:PHP - массив объектов в JSON
$setting['accountType']['all'] = 'ALL';
$setting['accountType']['A1'] = 'VIP1';
$setting['accountType']['A2'] = 'VIP2';
PHP код для генерации объекта:
$object = new stdClass();
$myArray = array();
foreach ($setting['accountType'] as $key => $val)
{
$object->id = $key;
$object->desc = $val;
$myArray[] = $object;
}
$accountType = $myArray;
PHP код для форматирования объекта в JSON:
json_encode(['accountType'=> [(object)$accountType]));
Однако я получаю выход, как показано ниже:
"accountType": [{
"0": {
"id": "A2",
"desc": "VIP"
},
"1": {
"id": "A2",
"desc": "VIP"
},
"2": {
"id": "A2",
"desc": "VIP"
}
}]
Проблема 1: почему $ accountType поддерживает только последний объект, когда я прохожу через цикл?
Задача 2: без ключа массива $ ВидСчета [решена с помощью array_values ($ ВидСчета)]
Это то, что я пытаюсь достичь:
"accountType": [{
"id": "all",
"desc": "All "
}, {
"id": "A1",
"desc": "Normal"
}, {
"id": "A2",
"desc": "VIP"
}]
Как получить выход, как указано выше?
Почему вы хотите быть объектом 'stdClass'? –
Можете ли вы напечатать $ setting ['accountType']? – rahulsm
'json_encode (['accountType' => $ accountType]);' – bansi