2012-04-27 148 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()得到錯誤時。