[英]PHP json_encode to JS Array of Objects
我試圖弄清楚如何將PHP數組轉換為json,轉換為對象的javascript數組:
$latlng = array();
$properties = get_posts(array(
'posts_per_page' => -1,
'post_type' => array('house', 'townhouse', 'condo'),
'status' => 'publish'
));
foreach ($properties as $prop) {
$lat = get_field('latitude', $prop, false);
$lng = get_field('longitude', $prop, false);
array_push($latlng, array($lat, $lng));
}
echo json_encode($latlng);
wp_die();
但是我需要最終的JS數組看起來像這樣:
locations = [
{lat: -31.563910, lng: 147.154312},
{lat: -33.718234, lng: 150.363181},
{lat: -33.727111, lng: 150.371124},
{lat: -33.848588, lng: 151.209834},
{lat: -33.851702, lng: 151.216968},
{lat: -34.671264, lng: 150.863657},
{lat: -35.304724, lng: 148.662905},
{lat: -36.817685, lng: 175.699196},
{lat: -36.828611, lng: 175.790222},
{lat: -37.750000, lng: 145.116667},
{lat: -37.759859, lng: 145.128708},
{lat: -37.765015, lng: 145.133858},
{lat: -37.770104, lng: 145.143299},
{lat: -37.773700, lng: 145.145187},
{lat: -37.774785, lng: 145.137978},
{lat: -37.819616, lng: 144.968119},
{lat: -38.330766, lng: 144.695692},
{lat: -39.927193, lng: 175.053218},
{lat: -41.330162, lng: 174.865694},
{lat: -42.734358, lng: 147.439506},
{lat: -42.734358, lng: 147.501315},
{lat: -42.735258, lng: 147.438000},
{lat: -43.999792, lng: 170.463352}
]
因此,我可以使用locations.map(function(location, i) {
來迭代邊界。
您的$latlng
是一個數組數組,並且您希望JSON是具有lat
和lng
字段的對象數組。 因此,您需要執行以下操作:
$latlng = array();
$properties = get_posts(array(
'posts_per_page' => -1,
'post_type' => array('house', 'townhouse', 'condo'),
'status' => 'publish'
));
foreach ($properties as $prop) {
$lat = get_field('latitude', $prop, false);
$lng = get_field('longitude', $prop, false);
array_push($latlng, array('lat' => $lat, 'lng' => $lng));
}
echo json_encode($latlng, JSON_NUMERIC_CHECK /* PHP >= 5.3.3 */);
wp_die();
我們只是推送了一個對象,而不是包含值的數組:
array_push($latlng, array('lat' => $lat, 'lng' => $lng));
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.