I次のエラーメッセージが表示されます未定義エラーをオフセット
不定オフセット:
:1$nbrProgrammingsRemoved = 0; for($i = 0; $i<count($this->products); $i++){ if((($this->products[$i])->id)==$id){ array_splice($this->products, $i, 1); for($j = 0; $j<count($this->programming); $j++){ /*ERROR LINE*/ if((($this->programming[$j]->out_prod_id)==$id) || (($this->programming[$j]->in_prod_id)==$id)){ $nbrProgrammingsRemoved++; array_splice($this->programming, $j, 1); } } return true; } } return false;
それがコードブロックにポイントを
特に、エラーは最も内側のifステートメントを指します。 (その中に "||"が付いたもの)。
ここで重要なのは、このエラーはではなく、が常に発生することです。
foreach ($this->programming as $key => &$prog) {
if($prog->in_prod_id == $in_prod_id){
if($prog->in_index == $in_index){
unset($this->programming[$key]);
}
}
}
このコードの目的は、私の配列で私のオブジェクトを反復処理し、特定のIDに関連付けられたものを削除することです:今まで次のコードが実行された後に起こります。これは、私のウェブサイトの出力が期待どおりであるために機能するように見えます。これを実行した後で、エラーが発生した最初のコードブロックを実行しようとするときだけです。
私はこの問題のトラブルシューティングをしばらくは試してみましたが、成功しませんでした。何か案は?投稿するために必要な情報は何ですか?
編集:必要に応じて、第1コードブロックが配列を反復処理して、指定されたIDの単一要素を削除します。 2番目のコードブロックは別の配列を反復し、いくつかの要素を削除します。
次のように変更されます: - 'if(isset($ this-> programming [$ j])&&(($ this-> programming [$ j] - > out_prod_id)== $ id)||(($ this - >プログラミング[$ j] - > in_prod_id)== $ id))){'角括弧 –
@Anantありがとう!これは、それを解決するための1つの方法でした。ループが下の答えでConstantineUAによって記述されているように、私の要素の削除が原因で不足しているインデックスの問題をバイパスしました。 –