#php #arrays #laravel #collections
#php #массивы #laravel #Коллекции
Вопрос:
Я передаю приведенные ниже данные через API в postman.
Я хочу получить доступ к этим значениям из коллекции внутри массива для элементов.
{
"user":"abc",
"supplier":"xyz",
"pdate":"1",
"items":[
{
"product":"Apple",
"qty":"1",
"rate":"40",
"amount":"40"
},
{
"product":"Banana",
"qty":"6",
"rate":"4",
"amount":"24"
}
]
}
Комментарии:
1. попробуйте функцию toArray()
Ответ №1:
Вы имеете в виду, что хотите преобразовать элементы в коллекцию? Если это так, вы можете сделать:
$data = json_decode('{ "user":"abc", "supplier":"xyz", "pdate":"1", "items":[ { "product":"Apple", "qty":"1", "rate":"40", "amount":"40" }, { "product":"Banana", "qty":"6", "rate":"4", "amount":"24" } ] }', true, 512, JSON_THROW_ON_ERROR);
$items = collect($data['items']);
dd($items);
Это приведет к:
IlluminateSupportCollection {#1545
#items: array:2 [
0 =&&t; array:4 [
"product" =&&t; "Apple"
"qty" =&&t; "1"
"rate" =&&t; "40"
"amount" =&&t; "40"
]
1 =&&t; array:4 [
"product" =&&t; "Banana"
"qty" =&&t; "6"
"rate" =&&t; "4"
"amount" =&&t; "24"
]
]
}
Пожалуйста, обратите внимание, я только что добавил и json_decoded данные, для примера, но просто сделайте это в вашем контроллере, куда передаются данные.