如何阵列推送和内爆codeigniter

时间:2017-02-13 04:35:46

标签: php codeigniter

我正在尝试推送数组,然后内爆它们

$this->input->post('sarana')

这是我的复选框的数组

<input type="checkbox" class="flat" name="sarana[]" id="sarana" value="listrik" />penerangan listrik 
<input type="checkbox" class="flat" name="sarana[]" id="sarana" value="listrik" />penerangan listrik 

然后我想推送输入型后马/电机/电视

<input type="text" name="mobil" placeholder="mobil" class="form-control input-sm">

控制器

$tv=$this->input->post('tv');
$motor=$this->input->post('motor');
$mobil=$this->input->post('mobil');
$sarana=$this->input->post('sarana');
array_push($sarana, 'tv=$tv','motor=$motor','mobil=$mobil');
        $data = array(
            'idakun' =>29,
            'kondisirumah' =>$this->input->post('fisikrumah'), 
            'statusrumah' =>$this->input->post('pemilikanrumah'),
            'sarana' =>implode(",", $sarana),
            'ekonomi' =>$this->input->post('ekonomi'),
            'hpkeluarga' =>implode(",",$this->input->post('hpkeluarga')),

            );

但它正在给出错误

  

array_push()期望参数1为数组,给定

为null

3 个答案:

答案 0 :(得分:0)

您可以使用array_merge()函数来完成。

只需更新:

$sarana=$this->input->post('sarana');
array_push($sarana, 'tv=$tv','motor=$motor','mobil=$mobil');

使用:

$sarana=$this->input->post('sarana');
$sarana= array_merge($sarana, array('tv'=>$tv), array('motor'=>$motor), array('mobil'=>$mobil));

答案 1 :(得分:0)

我认为您需要在null中检查$sarana,因为如果您没有选中名称为sarana[]的复选框列表中的至少一个,那么$this->input->post('sarana')会给您null值,所以 -

// this will make $sarana as array even if you did not check any of sarana checkbox list
$sarana=($this->input->post('sarana'))?$this->input->post('sarana'):[];

答案 2 :(得分:0)

$var= ""; 
      for ($x = 1; $x <= $request->input('cant'); $x++) {
        $array_numerico_indexado = array();
        array_push($array_numerico_indexado, $request->input('cama'.$x));
         foreach($array_numerico_indexado as $numero)
         {
          $var.= $numero.",<br>";
         }
      }
      echo $var;