我寫了一個代碼在PHP解析數據如下:在PHP數組中刪除不必要的括號
<?php
$db_name="hotels";
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$db_name);
if(! $conn) {
die('Could not connect: ' . mysqli_error());
}
else{
//echo"<h3>Database cannection established</h3>";
}
$sql_query_for_username = "select distinct `username` from hotels.ratingoffooditem";
$usernames_result = mysqli_query($conn, $sql_query_for_username);
$users = array();
while($row=mysqli_fetch_array($usernames_result)){
array_push($users, $row["username"]);
}
//print_r($users);
$response=array();
foreach($users as $user){
$sql_query= "select `food item`,rating from hotels.ratingoffooditem where username='$user'";
$result= mysqli_query($conn,$sql_query);
$abc = array();
if($result !=false){
while($row=mysqli_fetch_array($result)){
$def = array($row["food item"]=>$row['rating']);
//echo (json_encode($def));
//echo "</br>";
array_push($abc,$def);
}
}
//echo "</br>";
//print_r(json_encode($abc));
//echo "</br>";
array_push($response, array("$user"=>array($abc)));
//echo "</br>";
}
echo json_encode($response);
//echo "</br>";echo "</br>";echo "</br>";
mysqli_close($conn);
?>
我想獲得導致像:
{「什裏」:{「希肯-莫莫「:4,」Buff-Momo「:3,」Chicken-Thukpa「:3,」Chiken Momo「:4,」Buff Buffy Chowmein「:2.5,」Veg-Chowmein「:3.5},」Juppi「 「:4},」 律 「:{」 希肯-莫莫 「:1},」 bidur 「:{」 希肯-莫莫 「:4.5}}
但是,我得到這樣的:
[{」什裏「: [「{」pizza「:」3「},{」Burger「:」3.5「},{」Chiken-Momo「:」4.5「},{」Chiken Momo「:」4「}, : 「4」},{ 「希肯-莫莫」: 「4」},{ 「素食-Chowmien」: 「2」},{ 「巴夫-莫莫」: 「3」},{ 「希肯-Thukpa」:」 4 「},{」 希肯-Thukpa 「:」 4 「},{」 希肯-Thukpa 「:」 2 「}]]},{」 Juppi 「:[[{」 咖喱角 「:」 4 「},{」希肯-莫莫 「:」 4 「}]]},{」 律 「:[[{」 希肯-莫莫 「:」 1 「}]]},{」 bnabin51 「:[[{」 希肯-莫莫 「:」 4.5「}]]},{」bidur「:[[{」Chiken-Momo「:」4.5「}]]}]
現在我該如何刪除不必要的括號?
這些都不是不必要的括號。你正在生成這樣的json。那些是json對象中的數組。你可以使用'json_encode($ foo,JSON_FORCE_OBJECT)'來只獲取json對象。 – Archish
使用json驗證器檢查你的json,unsformated – Karthi
'array_push($ response,array(「$ user」=> $ abc));'用這個來代替'array_push($ response,array(「$ user」=> array( $ ABC))); '因爲'$ abc'已經是一個數組了,所以不需要使用'array($ abc)' –