Laravel 4 - 使用php array_push中的id

时间:2014-12-09 21:10:36

标签: php laravel laravel-4 array-push

我试图让我的查询从我的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"}]

1 个答案:

答案 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();