我的laravel应用程序控制器中有以下代码:
$levels = $request->level;
return $levels;
,它返回如下:
{
1: [
"9226"
],
2: [
"166"
]
}
我需要的只是返回值(9226,166)作为数组,如下所示:
{
"9226",
"166"
}
如何获取公正的价值观?
答案 0 :(得分:1)
使用Laravel的收藏。例如:
$level = [1 => ["9226"], 2 => ["166"]]; // or $request->level;
dd(
array_flatten($level),
collect($level)->flatten()->toArray()
);
答案 1 :(得分:1)
如果是数组,则可以使用array_flatten()
array_flatten($levels)
如果是集合,则
$ar = $levels->flatten();
$ar->all(); // get array
答案 2 :(得分:0)
您可以使用array_values
函数从数组中获取值。当函数返回一个对象时,您需要将其转换为数组,然后使用array_values
例如。
$levels = array_values((array)$levels);
答案 3 :(得分:0)
array_merge(...$levels);
您可以使用splat运算符(...
)使用array_merge来展平PHP 5.6及更高版本的2D数组。
**编辑:
{
1: [
"9226"
],
2: [
"166"
]
}
是一个对象,正如Ashok Gadri提到的那样,在使用数组语法之前,您需要将其转换为数组。