Как получить данные по foreach и нажать на массив?

У меня есть код, и я его запускаю, но он всегда содержит нулевой массив. Как я могу получить только ненулевые данные?

public function index(Request $request)
{
    $list_no_invoice = Invoice::whereNotNull('invoice_no')->get();
    $data = array();
    foreach ($list_no_invoice as $key => $value) {
        $check = Data::where('invoice_no', $value->invoice_no)->get();
        array_push($data, $check);
    }

    return $data;
}

Возвращенные данные

[[{"id":2,"bulan":"januari","tahun":"2018","nama_pkp":"Achmad Rivai","keterangan":"DP 50% Sewa periode 15 Feb - 13 Mar'16 ( Pameran Nands )","no_faktur_pajak":"010.000-16.43061871","tgl_faktur_pajak":"2016-03-18","ref":"BPnB No.154\/III\/2016","dpp":10227273,"ppn":1022727,"invoice_no":"IR16020115","nama_tenant":"Nand;s","pph_4_deyon":1022727,"pph_4_tenant":null,"bukpot_oleh_tenant":null,"no_p_l_tenant":null,"tgl_p_l_penyewa":"1970-01-01","pph_p_l_tenant":null,"note":null,"checklist":1022727,"selisih":"0.30","created_at":null,"updated_at":null,"deleted_at":null,"pph_23":null,"has_edit":0}],[{"id":3,"bulan":"januari","tahun":"2018","nama_pkp":"Achmad Rivai","keterangan":"Pelunasana Sewa periode 15 Feb - 13 Mar'16 ( Pameran Nands )","no_faktur_pajak":"010.000-16.43061872","tgl_faktur_pajak":"2016-03-18","ref":"BPnB No.154\/III\/2016","dpp":10227273,"ppn":1022727,"invoice_no":"IR16020116","nama_tenant":"Nand;s","pph_4_deyon":1022727,"pph_4_tenant":null,"bukpot_oleh_tenant":null,"no_p_l_tenant":null,"tgl_p_l_penyewa":"1970-01-01","pph_p_l_tenant":null,"note":null,"checklist":1022727,"selisih":"0.30","created_at":null,"updated_at":null,"deleted_at":null,"pph_23":null,"has_edit":0}],[{"id":4,"bulan":"januari","tahun":"2018","nama_pkp":"Achmad Rivai","keterangan":"DP 25% Sewa periode 22 Feb - 27 Mar'16 (Pameran Nands Purple)","no_faktur_pajak":"010.031-16.63924514","tgl_faktur_pajak":"2016-04-15","ref":"BPnB No.169\/IV\/2016","dpp":5017727,"ppn":501773,"invoice_no":"IR16020047","nama_tenant":"Nand's Purple","pph_4_deyon":501773,"pph_4_tenant":null,"bukpot_oleh_tenant":null,"no_p_l_tenant":null,"tgl_p_l_penyewa":"1970-01-01","pph_p_l_tenant":null,"note":null,"checklist":501773,"selisih":"-0.30","created_at":null,"updated_at":null,"deleted_at":null,"pph_23":null,"has_edit":0}],[],[],[],[],[],[],[]]

Как не включать данные в конец [],[],[]...?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
272
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вы можете добавить проверку !empty(), чтобы не добавлять пустые данные массива

foreach ($list_no_invoice as $key => $value) {
   $check = Data::where('invoice_no', $value->invoice_no)->get();
   if (!empty($check)) {
      array_push($data, $check);
   }
}

да, я тестирую ваш код, но массив данных содержит нуль, включая

Ade 10.07.2019 07:00

перед нажатием добавить чек count($check) > 0

Почему за функцию count проголосовали против, а за функцию sizeof — правильный ответ и голосование за?

Ryan Nghiem 10.07.2019 08:11

@RyanNghiem ... вы можете протестировать этот код, чтобы увидеть результат и получить ответ на свой вопрос.

ZF007 10.07.2019 11:28
Ответ принят как подходящий
foreach ($list_no_invoice as $key => $value) {
   $check = Data::where('invoice_no', $value->invoice_no)->get();
   if (sizeof($check) > 0) {
      array_push($data, $check);
   }
}

На самом деле вы можете сделать это очень легко без какого-либо цикла:

$list_no_invoice = Invoice::whereNotNull('invoice_no')->pluck('invoice_no')->toArray();
//get all records where invoice_no is one of values from array $list_no_invoice
$data = Data::whereIn('invoice_no',$list_no_invoice)->get()->toArray();
return $data;

Другие вопросы по теме