Php 如何从多维数组中仅获取数组值
我在拉威尔做项目。我正在从数据库中获取user1变量中的值Php 如何从多维数组中仅获取数组值,php,laravel,Php,Laravel,我在拉威尔做项目。我正在从数据库中获取user1变量中的值 foreach($users1 as $us){ $uss[$i] = $us->city_id; $users2[$i] = DB::table('provider_city')->select('provider_id')->where('city_id','=', $uss[$i])->get();
foreach($users1 as $us){
$uss[$i] = $us->city_id;
$users2[$i] = DB::table('provider_city')->select('provider_id')->where('city_id','=', $uss[$i])->get();
$i++;
}
return $users2;
当我返回user2时,我得到
[[{“提供者id”:“14785”}],{“提供者id”:“125478”}]]这样的值
我只需要像['14785','125478'这样的值
我知道这可能很简单。给出建议。这可以通过这样做来实现
编辑:当发现这是一个多维数组时
这里应该为您指出正确的方向。实际上有一种雄辩的方法-
lists()
:
这将为您提供一个仅包含提供者ID的数组
最后是否需要调用all()
主要取决于所使用的Laravel版本。可能类似于
return DB::table('provider_city')
->whereIn('city_id', array_pluck($users1, 'city_id')
->lists('provider_id');
您使用什么来获取这些数据?在此类问题中,您需要知道要传递给数组的变量的类型,在本例中,请检查->get()方法的返回,并查看您得到了什么。可能不是字符串,这就是为什么你没有得到预期的结果。使用dd或var_dump检查这一点。这只是一个提示,另一个家伙已经给了你下面的正确答案。有没有其他方法只使用数组函数来实现这一点?这是一个对象,而不是数组。你想怎么做呢?实际上我想把这些值与数据库值一一比较你可以通过把这些值放在这里,把从数据库检索到的值放在数组中,循环检查这些值来实现。然而,你比我们更了解你的项目,因此需要自己写这篇文章。假设数据库中的值以相同的顺序出现,那么您可以循环使用它们。我尝试了这个方法,但出现了错误,因为json_decode()期望参数1为字符串,数组给定我猜all()部分放置错误,list()返回一个数组,因此您无法调用all(),需要使用一个或另一个,而不是两个。还是我错了?:)如果从
all()
中得到错误,只需将其删除即可。:)这取决于您使用的版本,在以后的版本中您确实需要它。如果lists()
返回的数组正好是您想要的,对吗?:)
$users2[$i] = DB::table('provider_city')
->where('city_id','=', $uss[$i])
->lists('provider_id')
->all();
return DB::table('provider_city')
->whereIn('city_id', array_pluck($users1, 'city_id')
->lists('provider_id');