我正在尝试创建一个内部有两个数组的数组,但是当我打印它或将其转换为json时,我得到一个对象,其中包含我用来创建子数组的变量的索引名。
$var1 = [];
$var2 = [];
if ($stmt = $mysqli->query('SELECT id FROM table1')) {
while($id = $stmt->fetch_object()) {
$var1[] = $id;
}
$stmt->close();
unset($id);
}
if ($stmt = $mysqli->query('SELECT id FROM table2')) {
while($id = $stmt->fetch_object()) {
$var2[] = $id;
}
}
return array($var1, $var2);
我打印时var_dump($result);
:
array(2) { [0]=> array(1) { [0]=> object(stdClass)#14 (1) { ["id"]=> string(1) "1" } } [1]=> array(0) { } }
为什么有一个索引名为id的对象?
我只需要一个包含2个子数组的简单数组,并将它们打印在两个select
元素中:
$.get('/get?op=4', function (data) {
var content = data,
sale = content[0],
rent = content[1];
alert(sale);
$('select[name="lists-sale"]').html(sale);
$('select[name="lists-rent"]').html(rent);
});
我在json中回显并编码从/get?op=4
文件中的函数返回的内容。
答案 0 :(得分:3)
您正在调用 $ stmt-> fetch_object()并获得您所要求的内容 - 一个表示从数据库返回的一行数据的对象。
替换
while($id = $stmt->fetch_object()) {
$var1[] = $id;
}
与
while($row = $stmt->fetch_object()) {
$var1[] = $row->id;
}
获取一系列ID。
答案 1 :(得分:0)
$stmt->fetch_object()
获取包含结果的对象。
对象表示您选择的整行,而不是单个列。
如果您选择多个列,则您的对象将包含多个属性。