我真的卡住了,不知道如何解决这个问题:我想查询我的MySQL数据库,所以我有一个选择表的多维关联数组。
这个数组是我的目标:
$ar = Array(
table1name=>Array(Array(field1=>a, field2=>b), Array(field1=>a, field2=>b)),
table2name=>Array(Array(field1=>a, field2=>b), Array(field1=>a, field2=>b)),
table3name=>Array(Array(field1=>a, field2=>b), Array(field1=>a, field2=>b)),
);
因此,如果我使用json_encode($ar)
对其进行编码,结果应如下所示:
{
"table1name": [
{
"field1": "a",
"field2": "b",
},
{
"field1": "c",
"field2": "d"
}
],
"table2name": [
{
"fieldx": "1",
"fieldy": "2",
},
{
"fieldx": "3",
"fieldy": "4"
}
],
"table3name": [
{
"fieldz": "1",
"fieldq": "2",
},
{
"fieldz": "3",
"fieldq": "4"
}
]
}
这是我迄今为止所做的,但没有达到预期的结果:
function tablesToJson()
{
$mysqli = new mysqli("localhost", "user", "password", "test");
$tables = Array();
array_push($tables, "table1name");
array_push($tables, "table2name");
$finalArray = Array();
foreach ($tables as $table) {
if ($result = $mysqli->query('SELECT * FROM ' . $table)) {
$rows = Array();
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}
array_push($finalArray, $rows);
}
}
return $finalArray;
}
答案 0 :(得分:1)
在将表格结果添加到最终阵列时,您忘记/错过了使用密钥。 而不是
array_push($finalArray, $rows);
你应该使用类似的东西:
$finalArray[$table] = $rows;
因此,您为finalResult设置了一个新的key>element
组合,并根据您的要求设置了$table
。
function tablesToJson()
{
$mysqli = new mysqli("localhost", "user", "password", "test");
$tables = Array();
array_push($tables, "table1name");
array_push($tables, "table2name");
$finalArray = Array();
foreach ($tables as $table) {
if ($result = $mysqli->query('SELECT * FROM ' . $table)) {
$rows = Array();
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}
$finalArray[$table] = $rows;
}
}
return $finalArray;
}