我试图让我的查询从我的array_push中获取值,但不能使它工作,除非数组是硬编码的。
该数组来自先前的查询
我是使用array_push的新手,所以我会将任何输入重视为最佳效果。
$pages = json_encode($pages);
$pages = json_decode($pages, true);
$get_ids = array();
array_push($get_ids, $pages[0]["id"]);
$get_ids = array(10); // hardcoded
$getpages = DB::table('pages')
->whereIn('id', $get_ids)
->select('id', 'title')
->get();
来自var_dump的数组给了我
array(1) { [0]=> string(2) "10" }
来自第一个查询的JSON
[{"id":"10","title":"About us"}]
答案 0 :(得分:1)
array_push
是一个内置的PHP函数,用于将元素添加到数组的末尾。我想你正在寻找array_pluck
,它是一个Laravel辅助函数,用于从数组或对象数组中的所有项中提取特定键。
例如:
$pages = array(
array('id' => 10, 'name' => 'First'),
array('id' => 20, 'name' => 'Second')
);
// get an array of all the page ids
$ids = array_pluck($pages, 'id'); //= array(10, 20)
array_pluck
使用数组数组,对象数组,甚至是Laravel Collection(就像数据库查询的结果一样)。
最后,您的代码可能会归结为:
$get_ids = array_pluck($pages, 'id');
$getpages = DB::table('pages')
->whereIn('id', $get_ids)
->select('id', 'title')
->get();