Я пытаюсь взять массив массива в PHP и преобразовать его в массив javascript с новым форматированием текста в формате JSON. Как лучше всего вносить изменения в форматирование при преобразовании массива в JSON?
Я пытался использовать json_encode при переносе массива в Javascript ... но, похоже, создается массив JS, представляющий собой строку, в результате чего .map возвращает ошибку. Я могу заставить функцию .map работать с одной переменной, содержащей жесткий код моего массива. Я не могу заставить .map вносить изменения в формат, когда я просто конвертирую свой массив php в массив json. Я также попытался сделать изменение формата по одному результату за раз, как это появляется в запросе MySQL, и ничего, что я пробую, не работает. Я очень новичок в JS, поэтому борюсь с деталями преобразования массивов и переформатирования json вместе.
var myFences = [];
var jfences = <?php echo json_encode($fences)?>;// puts php array into json formatting into js.
var myFences = Array.from(jfences);
myFences = myFences.map ( e => ({lat: e[0], lng: e[1]}) ) ;
console.log(myFences);
var myFences = [$jfences[1]];
let path = jfence;
path = path.map ( e => ({lat: e[0], lng: e[1]}) ) ;
Вывод массива php выглядит следующим образом:
Array
(
[0] => [[56.51845972498524, -6.182719791640125],
[56.52412387806186, -6.18409308265575],
[56.523103365873006, -6.1784282572162965]]
[1] => [[58.472119674062085, -8.168053780198875],
[58.47303462652167, -8.161809597612205],
[58.46960999252895, -8.160264645219627]]
)
Но мне нужно, чтобы это был массив JS в формате json с такими изменениями текста:
var geofence = [
{lat: 56.51845972498524, lng: -6.182719791640125},
{lat: 56.52412387806186, lng: -6.175282560388155},
{lat:56.523103365873006,lng: -6.147215925256319}
];
вот код, используемый для генерации массива php:
$sql = "SELECT `poly_data` FROM `landowner_polygon` WHERE `landowner_location_id`=".$llocID;
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
echo "<table>";
echo "<tr>";
echo "<th>poly_data</th>";
echo "</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['poly_data'] . "</td>";
$llocFence = $row['poly_data'];
$allFences = $allFences.$llocFence;
$fences[] = $llocFence;
echo "</tr>";
}
echo "</table>";
// Free result set
mysqli_free_result($result);
} else{
echo "No records matching your query were found.";
}
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// Close connection
mysqli_close($link);
}