Php 在Json数组中输出Json数组
我正试图得到下面这样的输出。它将纬度和经度合并到对象内部的数组中。这就是我想让我自己去做的。我对php和json非常陌生,已经查了好几天了,运气不好。php可以从mysql数据库中输出这个。如果可以,你怎么做 所需的Json输出Php 在Json数组中输出Json数组,php,json,multidimensional-array,Php,Json,Multidimensional Array,我正试图得到下面这样的输出。它将纬度和经度合并到对象内部的数组中。这就是我想让我自己去做的。我对php和json非常陌生,已经查了好几天了,运气不好。php可以从mysql数据库中输出这个。如果可以,你怎么做 所需的Json输出 [ { "business_name": "Johns Pizza", "latlng": [ 99.457434, 14.349869 ], "bu
[
{
"business_name": "Johns Pizza",
"latlng": [
99.457434,
14.349869
],
"business_id": "1"
},
{
"business_name": "Daves Pizza",
"latlng": [
19.457434,
13.349869
],
"business_id": "2"
},
{
"business_name": "Jakes Pizza",
"latlng": [
75.457434,
12.349869
],
"business_id": "3"
}
]
当前Json输出
[{"business_name":"Crush Wine Bar","latlng":"43.6894658949280400,-116.3533687591552700",
"business_id":"2","distance":"23.0298400562551"},{"business_name":"Apple Headquarters","latlng":"37.3324083200000000,-122.0304781500000000",
"business_id":"3","distance":"23.0298400562551"}]
我的php文件
<?php
if (isset($_GET['lat']) && isset($_GET['lon'])&& isset($_GET['dist'])) {
//make a simple database connection
$db = new mysqli();
$lat = $_GET['lat'];
$lon = $_GET['lon'];
$dist = $_GET['dist'];
$search_sql = "SELECT business_id, business_name, CONCAT_WS(\",\",business_lat, business_lon) AS latlng, ( 3959 * acos( cos( radians(37) ) * cos( radians( " . $lat . " ) ) * cos( radians( " . $lon . " ) - radians(-122) ) + sin( radians(37) ) * sin( radians( " . $lat . " ) ) ) ) AS distance
FROM business_data HAVING distance < " . $dist . " ORDER BY distance LIMIT 0 , 20";
$search_results = $db->query($search_sql);
if($search_results->num_rows) {
while ($row = $search_results->fetch_assoc()) {
$return_data[] = array (
'business_name' => $row['business_name'],
'latlng' => $row['latlng'],
'business_id' => $row['business_id'],
'distance' => $row['distance']
);
} //end while
} else {
$return_data[] = array();
}//end if
} else {
$return_data[] = array();
}
$bd_json = json_encode($return_data);
$db->close();
echo $bd_json;
?>
您可以这样做:
while ($row = $search_results->fetch_assoc())
{
$return_data[] = array(
'business_name' => $row['business_name'],
'latlng' => explode(',', $row['latlng']),
'business_id' => $row['business_id'],
'distance' => $row['distance']
);
}
我不知道该说什么你只是想要漂亮的JSON输出打印吗?或者我遗漏了什么?我正在尝试让latlong结果成为数组中自己的数组。谢谢。但是输出结果是一样的。@BillyKorsen我能看到
var\u dump($search\u results->fetch\u assoc())代码>和最后一次var\u转储($return\u data)代码>?它实际上没有删除重复项。我会编辑输出,谢谢你,尽管它更容易阅读。我不理解这个问题。我想看看db结果结构和$return\u data
与我给定的代码。它不应该和旧的一样。