array创建索引名为variable的对象

时间:2016-01-14 20:44:20

标签: php arrays json multidimensional-array

我正在尝试创建一个内部有两个数组的数组,但是当我打印它或将其转换为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文件中的函数返回的内容。

2 个答案:

答案 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()获取包含结果的对象。

对象表示您选择的整行,而不是单个列。

如果您选择多个列,则您的对象将包含多个属性。