Php 如何在LaravelAPI中将数组转换为对象

Php 如何在LaravelAPI中将数组转换为对象,php,laravel,Php,Laravel,您好,首先我从数据库中获取数据作为数组,然后我想将数组数据转换为对象我尝试了许多函数,但在laravel api中不起作用。我想将数组数据转换为对象,并返回为JSONforapi我在google上搜索了几次,但没有找到任何解决方案。感谢大家的帮助 对于api,我使用这个 return response()->json(['data' => $categories, 'status_code' => 200, 'status' => true],200); 我试过了

您好,首先我从数据库中获取数据作为数组,然后我想将数组数据转换为对象我尝试了许多函数,但在laravel api中不起作用。我想将数组数据转换为对象,并返回为
JSON
for
api
我在google上搜索了几次,但没有找到任何解决方案。感谢大家的帮助

对于api,我使用这个

return response()->json(['data' => $categories, 'status_code' => 200, 'status' => true],200);   
我试过了

Category是一个数组
$categories

    $data_object = (object)$categories; 
    $data_array = (array)$categories;
dd($data_数组); dd(数据对象)

两者都返回相同的结果

这就是结果

 array:14 [
  37 => array:5 [
    "id" => 37
    "name" => "Red abya"
    "alias" => "red-abya"
    "is_featured" => 0
  ]
  38 => array:5 [
    "id" => 38
    "name" => "Black Dress"
    "alias" => "black-dress"
    "is_featured" => 0
  ]"is_featured" => 0
  ]
  1 => array:6 [
    "id" => 1
    "name" => "Abayas"
    "alias" => "abayas"
    "is_featured" => 1
    "sub_categories" => array:2 [
      0 => array:5 [
        "id" => 37
        "name" => "Red abya"
        "alias" => "red-abya"
        "is_featured" => 0
      ]
      1 => array:5 [
        "id" => 36
        "name" => "White abaya"
        "alias" => "white-abaya"
        "is_featured" => 0
      ]
    ]
  ]
  25 => array:5 [
    "id" => 25
    "name" => "Discount"
    "alias" => "discount"
    "is_featured" => 0
  ]
]

如果您希望在结尾使用JSON,可以尝试更改此选项:

$data_object = (object)$categories; 


我假设
$categories
是一个集合数组。然后在您的视图中,您可以
json\u encode($data\u object)
it.

如果您使用邮递员,您可以发送和接收json格式的数据。因此,您可以使用json_encode()将数据转换为json格式,使用json_decode()将数据转换为array()格式。在laravel中,您还可以通过请求实例获取数据,并通过response()助手发送响应,因此,如果您需要以数组格式获取数据,可以使用以下方法: $data\u array=(array)$request->all() 和用于发送数据: response()->json($data_数组,200)

如果希望stdclass使用(对象)而不是数组,请尝试以下操作

$categories = array_map(function($categories){
    return (object)$categories;
}, $categories);

检查
是否为$categories
是否为数组?结果将清晰显示并排列您发布数据的方式使其看起来像一个json编码的字符串。请检查以确保它确实是一个数组。您可以使用
is_array()
函数来测试这个问题。请检查我的答案。@ShahidHussain,这样对您就行了。如果有任何错误,请告诉我。返回中的上述结果部分是否确实没有将其转换回数组<代码>$data\u object=(object)$categories$数据数组=(数组)$类别您应该只使用Object,但在第二行中,您再次转换为array?使用这两个$data_Object=(Object)$类别$数据数组=(数组)$类别;我只想将$category数组一个接一个地转换为object brolook我的函数请求如下:公共函数测试(请求$req){$data\u数组=(数组)$req->all();返回响应()->json(['data'=>$data\u数组],200);}代码正在返回我想要的完美结果,但我只想将其转换为对象,即所有broobject(stdClass)#257(3){[“id”]=>string(1)“6”[“name”]=>string(15)“ifooooooooo”[“code”]=>string(3)“500”}这是我使用((object)为$request->all()进行强制转换后的结果
$categories = array_map(function($categories){
    return (object)$categories;
}, $categories);