2017-01-23 69 views
1

データベースに各ピンコードのレコードを挿入したいのですが、このエラーが発生しています。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

私はexplode()を使用する場合、パラメータ2が文字列、配列与えられた – Hemant

答えて

0

explode()の代わりにimplode()を使用しました。それは次のようになります。私は推測している

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

を期待して爆発を使用する場合explode()は、文字列、配列与えられたパラメータ2を期待して爆発を使用します – Hemant

+1

Then $ post_data [ '、'、$ post_data ['pincode']]は既に配列であるようです。 '$ explode_pincode = $ post_data ['pincode'];' – Cashbee

+0

これは何をしましたか$ explode_pincode = explode( '、'、$ post_data ['pincode']);しかし、まだ同じエラー – Hemant

1

あなただけからを爆発入力して欠場します。

1

「警告: 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']); 

から文字列

で配列の要素を結合 - 文字列で文字列を分割し

(文字列$デリミタ、文字列$文字列[、int型$限界= PHP_INT_MAX])を爆発

によって形成された境界上に分割して形成された文字列 のサブストリングである各々が文字列の配列を返します文字列区切り文字。

$explode_pincode = explode(',',$post_data['pincode']); 
関連する問題