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

使用issetempty

例如:

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