Конвертировать PHP Array в JSON Array объекта

я использую Google Orgchart в моем проекте. Во что я возвращаюсь JSON OBJECT из файла PHP.

проблема

Моя проблема, когда я жестко закодировал значение, он работает нормально. Когда я возвращаю данные из файла PHP. Это не работает. Я думаю, формат данных, который возвращается из файла PHP, не является правильным. Файл ниже.

$result = mysql_query("SELECT * FROM emp");
while($row = mysql_fetch_array( $result )) {
$arr1 = array(
'v' => $row['name'],
'f' => $row['name']+'<div style="color:red; font-style:italic">President</div>',
'' => $row['rep'],
'' => $row['des'],
);
array_push($dataarray, $arr1);
}

echo json_encode($dataarray);

который возвращает объект, как показано ниже

введите описание изображения здесь

Как это должно быть

Мой жестко JSON OBJECT ниже

   [
[{v:'Prabhkar', f:'Prabhkar<div style="color:red; font-style:italic">President</div>'},
'', 'The President'],
[{v:'Raguram', f:'Raguram<div style="color:red; font-style:italic">GM</div>'},
'Prabhkar', 'GM']
]

Скриншот консоли ниже:

введите описание изображения здесь

Нужно ли создавать еще один массив в PHP-файле. Как я предполагаю изменить массив PHP в соответствии с приведенным выше снимком экрана. Извините за мой английский. Спасибо.

2

Решение

Вам нужно обернуть ‘v’ и ‘f’ в массив, а затем передать другие значения в родительский массив.

$result = mysql_query("SELECT * FROM emp");
while($row = mysql_fetch_array( $result )) {
$arr1 = array(
array(
'v' => $row['name'],
'f' => $row['name'] . '<div style="color:red; font-style:italic">President</div>'
),
$row['rep'],
$row['des']
);
array_push($dataarray, $arr1);
}

echo json_encode($dataarray);
2

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

В вашем жестко запрограммированном массиве первый ключ имеет массив внутри, поэтому вы должны изменить свой код следующим образом

$result = mysql_query("SELECT * FROM emp");
$dataarray = [];
while($row = mysql_fetch_array( $result )) {
$arr1 = array(
array(
'v'=> $row['name'],
'f' => $row['name'].'<div style="color:red; font-style:italic">President</div>',),
$row['rep'],
$row['des'],
);
array_push($dataarray, $arr1);
}

echo json_encode($dataarray);
1

Ваша внутренняя структура неверна. Ваша внутренняя структура — это массив, первый из которых — карта, за которой следуют два значения. Ваша текущая реализация представляет собой массив, содержащий только карту.

$result = mysql_query("SELECT * FROM emp");
while($row = mysql_fetch_array( $result )) {
$arr1 = array(
array(
'v' => $row['name'],
'f' => $row['name'] . '<div style="color:red; font-style:italic">President</div>',
),
$row['rep'],
$row['des']);
array_push($dataarray, $arr1);
}

echo json_encode($dataarray);
1
По вопросам рекламы [email protected]