如何修改此PHP代码以返回嵌套结果

时间:2016-02-29 20:27:21

标签: php mysql

我希望将其作为单个对象,因为我在前端使用了JObject。

我现在有一个数组,但我不确定应该如何修改它,所以它会返回一个对象。

这是代码:

$contacts = array(); 

        while ($row = mysqli_fetch_array($stmt))
        {

            $contact = array("ID" => $row['ProduktID'],
                             "Name" => $row['ProduktNamn'],
                             "Number" => $row['ProduktPris']);

            array_push($contacts, $contact);
        }

        echo json_encode($contacts, JSON_PRETTY_PRINT);

目标是让它看起来像这样的“结果”,所以我可以达到整个事情:

enter image description here

3 个答案:

答案 0 :(得分:2)

您可以使用类型转换将数组转换为对象:

$object = (object) $array_name;

或手动将其转换为对象

$object = object;
foreach($arr as $key => $value)
{
    $object->$key = $value;
}

答案 1 :(得分:2)

使用单个results属性将您的联系人数组包装在一个对象中:

echo json_encode(array('results' => $contacts), JSON_PRETTY_PRINT);

答案 2 :(得分:0)

喜欢这个?请记住,对象与数组不同,您的问题相当混乱。

    while ($row = mysqli_fetch_array($stmt)){
        $contact[] = [
          "ID" => $row['ProduktID'],
          "Name" => $row['ProduktNamn'],
          "Number" => $row['ProduktPris']
        ];
    }

    json_encode(['result' => $contact]); // Forget the JSON_PRETTY_PRINT. 

使用此方法[],它将使用从0开始的第一个可用数字索引。这样您就不必推送数组。