2012-04-27 151 views
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 
} 

等....什么都我试试看,有错误:( 请帮

回答

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

,如果它是。总是0,1,2或任何一行连续整数你可以做if(count($option['color']) > $key){}

+0

未定义偏移量:2 – Bobo 2012-04-27 13:15:36

+0

对不起应该只是'>'不是'> =' – 2012-04-27 13:17:02

+0

这也适用,但是已经给出了最好的答案。再次感谢 – Bobo 2012-04-27 13:20:24

1

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

检查确切的代码行,当你仍然使用isset()得到错误时。