Как сохранить значения в массиве X, если значения, поступающие из базы данных и сеанса, совпадают, если они хранятся в другом массиве - PullRequest
0 голосов
/ 18 февраля 2020

Я делаю проект управления гаражом в Codeigniter, в котором я генерирую счет для пользователя. Здесь пользователь может выбрать элемент из раскрывающегося списка, если он уже сохранен в базе данных, и если элемент, введенный пользователем, недоступен, он не будет отображаться в раскрывающемся списке, тогда пользователь может ввести элемент только оттуда и может отправить форму счета. и сохраненные элементы в сеансе.

Теперь я хочу отфильтровать данные в соответствии с совпадающими элементами.

и, если элемент не соответствует, который сохраняется в сеансе с извлеченным складским списком, то сохраните его в массиве X, иначе сохраните это в updateArray.

Вот функция My Controller

public function nongstListing(){

      if($this->session->userdata('userData') == TRUE)
      {
        $nonGstlist = $this->Login_M->getNonGstList();
        if($this->session->userdata('stock') == TRUE)
        {
          $stock  = $this->session->userdata('stock'); // stock list from session that user have 
                                                       // entered in invoice 

          $stockList  = $this->Login_M->getStockListing(); // Fetching stocklist from DB

          $filterBy = '';
          $updateArray = array();
          $new = [];
          $arr = array();

          // Loop through stock that is stored in session
          for($x = 0; $x < sizeof($stock); $x++){

            // storing part name for filter data from fetched stocklist
            $filterBy = $stock[$x]['pt_name'];


             //Filter stock parts 
             $arr = array_filter($stockList,function($a) use ($filterBy) {
                return stripos($a['part'],$filterBy) !== false;
            });


            // if part exist in stocklist then store it in updateArray
            if(!empty($stock[$x]['pt_name'])){
              $updateArray[]      = array(
                'part'       =>   $stock[$x]['pt_name'],
                'sold_product' => $arr[$x]['sold_product'] - $stock[$x]['bill_quantity'],
              );
            }
            else
            {
               // if item not matched that is stored in session with fetched stock list then store it 
               // in array X
               $x[];
            }
          }  


          // update stock      
          $this->db->update_batch('stock',$updateArray, 'part');
          $this->session->unset_userdata('stock');
        }

        $data = array(
          'page_title' => 'Non-Gst Listing',
          'nongst_list'  => $nonGstlist
        );

        $this->data['data'] = $data;
        $this->page = 'backend/super_users/viw_nongst_listing';
        $this->backendLayout();
      }
      else
      {
        redirect('admin/login');
      }
    }
...