为foreach提供的参数无效 - PHP

时间:2017-01-23 06:54:36

标签: php

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

我的代码就是这个。

 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);
           }

3 个答案:

答案 0 :(得分:1)

我猜你只是错过输入爆炸 implode

答案 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

所以你需要先纠正一行

  

implode - 使用字符串

连接数组元素

发件人

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

explode - 按字符串

拆分字符串

explode(string $ delimiter,string $ string [,int $ limit = PHP_INT_MAX])

  

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

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

答案 2 :(得分:0)

您使用implode()代替explode()。它应该是:

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