检查数组是否存在?

时间:2012-04-27 13:04:43

标签: php arrays post

有选择表格的帖子,如:

<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
}

等...我试过什么,有错误:( 请帮忙

5 个答案:

答案 0 :(得分:2)

尝试array_key_exists查看是否存在。

答案 1 :(得分:1)

如果始终为0,1,2或任何连续整数行,则可以if(count($option['color']) > $key ){}

答案 2 :(得分:1)

isset($option['color'][$key])是要走的路。

使用isset()检查错误发生的确切代码行。

答案 3 :(得分:0)

if( isset($option['color'][$key]) )
{
  $_SESSION[$key]['option']['color'] = $option['color'][$key];
}

答案 4 :(得分:0)

使用issetempty

例如:

if (isset($array['idx'])){ ... }
if (!empty($array['idx'])){ ... }