Я пытаюсь заставить мой запрос взять значения из моего 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"}]
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 (например, результаты запроса к базе данных).
В конце ваш код, вероятно, может сводиться к чему-то вроде:
$get_ids = array_pluck($pages, 'id');
$getpages = DB::table('pages')
->whereIn('id', $get_ids)
->select('id', 'title')
->get();
Других решений пока нет …