1

次のような選択フォームの投稿があります。

<select name="option[color][0]">
<select name="option[color][1]">
// option[color][2] isnt posted

一部の製品にはその選択がなく、投稿から取得しようとすると、選択が投稿されないたびに次のようなエラーが発生します。

未定義のオフセット: 2

何かが投稿されているかどうかを確認する方法は?試した:

$ids       = $_POST['id'];
$option = $_POST['option'];

foreach ($ids as $key => $id)
{
   //Undefined offset: 2
   if( $option['color'][$key] )
   {
      $_SESSION[$key]['option']['color'] = $option['color'][$key];
   }

   //Undefined offset: 2
   if( !empty($option['color'][$key]) )
   {
      $_SESSION[$key]['option']['color'] = $option['color'][$key];
   }

   //Undefined offset: 2
   if( isset($option['color'][$key]) )
   {
      $_SESSION[$key]['option']['color'] = $option['color'][$key];
   }

   //... etc
}

など....何を試しても、エラーがあります:(助けてください

4

5 に答える 5

2

array_key_existsを試して、存在するかどうかを確認してください。

于 2012-04-27T13:06:33.077 に答える
1

それが常に0,1,2または連続する整数の任意の行である場合は、実行できますif(count($option['color']) > $key ){}

于 2012-04-27T13:09:38.087 に答える
1

isset($option['color'][$key])行く方法です。

を使用してまだエラーを取得している場合に、エラーが発生するコードの正確な行を確認してくださいisset()

于 2012-04-27T13:16:25.890 に答える
0
if( isset($option['color'][$key]) )
{
  $_SESSION[$key]['option']['color'] = $option['color'][$key];
}
于 2012-04-27T13:09:19.697 に答える
0

issetまたはを使用しますempty

例えば:

if (isset($array['idx'])){ ... }
if (!empty($array['idx'])){ ... }
于 2012-04-27T13:11:19.217 に答える