как вернуть mysql в качестве массива массивов в json, используя php

Я пытаюсь экспортировать запрос mysql (select) в массив json массива, так что JSON.parse в javascript вернет массив массивов, а не массив объектов, как то, что произойдет после ответов на аналогичные ранее заданные вопросы.

Что нужно изменить для перевода запроса mysql в массив json массива?

Чтобы json_encode возвращал массив массивов JSON, вам нужен массив с числовой индексацией.

Это можно получить с помощью следующей общей функции:

  function SqlSelectToJsonTable($result,$withNames=false){ // result a mysqli::query object, // withNames: boolean, should the column names be returned as first row $return_arr = array(); echo $result->num_rows; if ($result->num_rows > 0){ if($withNames == true){ $return_arr[0] = array(); $fields = $result->fetch_fields(); foreach ($fields as $field){ echo "column: ".$field->name." "; array_push($return_arr[0],$field->name); } } while($row = $result->fetch_assoc()) { $return_arr[]= array_values($row); } } else { echo "0 results"; } return json_encode($return_arr); } 

Используется как в следующем:

  <?php $servername = "localhost"; $username = "user"; $password = "password"; $dbname = "test"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT id, title FROM Posts"; $result = $conn->query($sql); $jsonTable = SqlSelectToJsonTable($result); echo '<br/>'.$jsonTable; echo "<script type=\"text/javascript\"> var jsTable = JSON.parse('".$jsonTable."'); </script>"; $conn->close(); ?> 

Где jsTable будет эффективно представлять собой массив массивов. Обратите внимание на параметр withNames позволяющий добавлять имена столбцов в первую строку, полезно, если вы попытаетесь передать этот массив в javascript для визуализации google .