为foreach提供的参数无效 - PHP
问题描述:
我想插入每个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);
}
答
您已使用implode()
而不是explode()
。它应该是:
$explode_pincode = explode(',',$post_data['pincode']);
答
我猜你只是错过打字爆炸到破灭。
答
得到以下错误“警告: 的foreach()提供无效参数”,因为无论是
null
或false
或参数
它不是阵列
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']);
你爆上线2条,不爆炸。 – Kaylined
'$ data ['pincode']'现在是一个字符串,因为这个:'$ explode_pincode = implode(',',$ post_data ['pincode']);'。所以你不能申请foreach –
如果我使用爆炸它说爆炸()期望参数2是字符串,数组给定 – Hemant