2013-03-20 77 views
0

由於問題說我需要驗證多維數組,所以你知道這是我第一次真正使用數組,所以它可能是一個非常糟糕的腳本,但它的工作原理,這就是我在時刻。好吧,所以它的工作我有兩個會話顯示在這個數組中,當我刪除其中一個會話,我得到這個錯誤驗證多維數組

「注意:未定義的索引:彈出在C:\ inetpub \ wwwroot \ dropdown \ test.php在線30「

我想我知道如何解決它,但我實際上並不知道如何實現它。這是我通過後什麼IM

$myarray (

IF isset session cityname 

add the value to my array 

ELSE 

add a blank value in its place (or just remove it from the array altogether) 

IF isset session pop 

add the value to my array 

ELSE 

add a blank value in its place (or just remove it from the array altogether) 

echo myarray 

請注意城市名說話是必需的,而流行音樂是不是

這基本上就是我想實現,但我沒有絲毫如何真正去這樣做它,這是我當前的代碼

if(isset($_SESSION['cityname'])){ 
     $myarray = array(array($_SESSION['cityname']), 
         array($_SESSION['pop']) 
         ); 
     foreach($myarray as $key=>$value){ 
      echo $myarray[$key][0]; 
     } 

任何幫助非常感謝,我失去了很多發到這個問題在過去幾周的!

+0

其實你看到通知不擔心,因爲編譯器仍然貫穿你的程序。如果你試圖訪問一個不存在的鍵,像這樣:$ value = $ array ['notExistingIndex'];那麼你只會在你的'$ value'中有空。 – ITroubs 2013-03-20 14:01:25

+0

@ITROTBS *任何*通知或警告是擔心!永遠不要留下通知! – deceze 2013-03-20 14:03:46

+0

感謝您的回覆iTroubles是它仍然運行腳本的其餘部分,但我寧願有0錯誤它更專業,只是良好的做法 – jphillip724 2013-03-20 14:05:45

回答

1

該通知告訴您,您正在使用從未設置過的​​。 事實上,在您的代碼中,您只是檢查了$_SESSION['cityname'],但隨後將​​添加到了您的陣列中。

編輯 如果你想​​是可選的,你想擺脫該通知的,只是檢查是否​​設置與否:

if(isset($_SESSION['cityname'])){ 
    $myarray = array(array($_SESSION['cityname'])); 
    if(isset($_SESSION['pop'])) { $myarray[] = array($_SESSION['pop']); } 
    foreach($myarray as $key=>$value){ 
     echo $myarray[$key][0]; 
    } 
+0

謝謝對於答覆,是的,這是真的,我指定cityname是必需的,而pop是可選的,如果cityname不在那裏,他們會看到其他的東西,但是腳本可以在沒有彈出的情況下繼續下去,我試圖通過使用我試圖描述上面的方法,但不知道如何去實際去做。 – jphillip724 2013-03-20 14:31:46

+0

謝謝你,那正是我所需要的大壩它與我所擁有的一樣,但是我沒有[myarray]之後的[],謝謝你的幫助 – jphillip724 2013-03-20 14:38:00