<?php header("Content-type:text/html;charset=utf-8");//字符編碼設置 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "tjks"; // 創建連接 $con =mysqli_connect($servername, $username, $password, $dbname); // 檢測連接 $sql = "SELECT * FROM brands"; $result = mysqli_query($con,$sql); if (!$result) { printf("Error: %s\n", mysqli_error($con)); exit(); } $jarr = array(); while ($rows=mysqli_fetch_array($result,MYSQL_ASSOC)){ $count=count($rows);//不能在循環語句中,由於每次刪除 row數組長度都減小 for($i=0;$i<$count;$i++){ unset($rows[$i]);//刪除冗余數據 } array_push($jarr,$rows); } print_r($jarr);//查看數組 echo "<br/>"; echo '<hr>'; echo '編碼后的json字符串:'; echo $str=json_encode($jarr);//將數組進行json編碼 echo '<br>'; $arr=json_decode($str);//再進行json解碼 echo '解碼后的數組:'; print_r($arr);//打印解碼后的數組,數據存儲在對象數組中 mysqli_close($con); ?>
輸出內容如下:
Array ( [id] => 1 [name] => GNC ) Array ( [id] => 2 [name] => TCBJ ) Array ( [id] => 3 [name] => TJKS ) Unicode編碼后的json數據: [{"id":"1","name":"GNC"},{"id":"2","name":"TCBJ"},{"id":"3","name":"TJKS"}]
可以看到,直接進行json_encode();編碼,是將三個數組分別轉為了json格式,而且兩端會出現中括號!!還有另外一種寫法
<?php header("Content-type:text/html;charset=utf-8");//字符編碼設置 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "tjks"; // 創建連接 $con =mysqli_connect($servername, $username, $password, $dbname); // 檢測連接 $sql = "SELECT * FROM brands"; $result = mysqli_query($con,$sql); if (!$result) { printf("Error: %s\n", mysqli_error($con)); exit(); } $jarr = array(); while ($rows=mysqli_fetch_array($result,MYSQL_ASSOC)){ $count=count($rows);//不能在循環語句中,由於每次刪除 row數組長度都減小 for($i=0;$i<$count;$i++){ unset($rows[$i]);//刪除冗余數據 } array_push($jarr,$rows); } print_r($jarr);//查看數組 echo "<br/>"; echo '<hr>'; $jobj=new stdclass();//實例化stdclass,這是php內置的空類,可以用來傳遞數據,由於json_encode后的數據是以對象數組的形式存放的, //所以我們生成的時候也要把數據存儲在對象中 foreach($jarr as $key=>$value){ $jobj->$key=$value; } echo '傳遞屬性后的對象:'; print_r($jobj);//打印傳遞屬性后的對象 echo '<br>'; echo '編碼后的json字符串:'.json_encode($jobj).'<br>';//打印編碼后的json字符串 mysqli_close($con); ?>
輸出內容如下:
Array ( [0] => Array ( [id] => 1 [name] => GNC ) [1] => Array ( [id] => 2 [name] => TCBJ ) [2] => Array ( [id] => 3 [name] => TJKS ) ) 傳遞屬性后的對象:stdClass Object ( [0] => Array ( [id] => 1 [name] => GNC ) [1] => Array ( [id] => 2 [name] => TCBJ ) [2] => Array ( [id] => 3 [name] => TJKS ) ) 編碼后的json字符串:{"0":{"id":"1","name":"GNC"},"1":{"id":"2","name":"TCBJ"},"2":{"id":"3","name":"TJKS"}}
這樣一來,中括號沒有了,數組也成為了有序的數組!