2017-01-23 182 views
1

我想插入每个pincode到数据库的记录,但我得到这个错误。为foreach()提供了无效的参数。为foreach提供的参数无效 - PHP

我的代码是这样的。

if(!empty($post_data['pincode'])){ 
    $explode_pincode = implode(',',$post_data['pincode']); 
    $data['pincode'] = $explode_pincode; 


     foreach($data['pincode'] as $pinvalue) 
      { $post_data['pincode']=$pinvalue; 
      $post_data['store_name']=$store_name; 
      $post_data['store_id']=$store_id; 
      $result = $this->msproduct_model->insertPromo($post_data); 
      } 
+0

你爆上线2条,不爆炸。 – Kaylined

+0

'$ data ['pincode']'现在是一个字符串,因为这个:'$ explode_pincode = implode(',',$ post_data ['pincode']);'。所以你不能申请foreach –

+0

如果我使用爆炸它说爆炸()期望参数2是字符串,数组给定 – Hemant

回答

0

您已使用implode()而不是explode()。它应该是:

$explode_pincode = explode(',',$post_data['pincode']); 
+0

如果我使用爆炸它说爆炸()期望参数2是字符串,数组给出 – Hemant

+1

然后$ post_data [ 'pincode']似乎已经是一个数组了,试试 '$ explode_pincode = $ post_data ['pincode'];' – Cashbee

+0

那就是我做的$ explode_pincode = explode(',',$ post_data ['pincode']);但仍然是相同的错误 – Hemant

1

我猜你只是错过打字爆炸破灭

1

得到以下错误“警告: 的foreach()提供无效参数”,因为无论是nullfalse或参数

它不是阵列

foreach($data['pincode'] as $pinvalue){ 
      ^
      see var_dump($data['pincode']), 
      since $data['pincode'] is either null or false or not array you get above error 

我们可以再生像这样的错误例如

$ php -r 'foreach(null as $e){}' 
PHP Warning: Invalid argument supplied for foreach() in Command line code on line 1 

/*false OR FALSE*/ 
$ php -r 'foreach(false as $e){}' 
PHP Warning: Invalid argument supplied for foreach() in Command line code on line 1 

/* Not array */ 
$ php -r 'foreach("somestring" as $e){}' 
PHP Warning: Invalid argument supplied for foreach() in Command line code on line 1 

因此,你需要正确的行头

破灭 - 加入数组元素用字符串

$explode_pincode = implode(',',$post_data['pincode']); 

爆炸 - 通过串

分割字符串

爆炸(字符串$分界,字符串$串[摘要$极限= PHP_INT_MAX])

返回一个字符串数组,其中每一个是通过分割其上由形成边界处形成串 的一个子字符串分隔符。

$explode_pincode = explode(',',$post_data['pincode']); 
相关问题