2017-09-15 64 views
0

我有一個接收POST信息(2個id從另一個頁面)的腳本,它存儲在一個數組中,我希望能夠得到這兩個id並將它們保存到兩個單獨的變量中。我找到了一種在foreach循環中收集它們的方法,但是如何提取它們並將它們存儲爲單獨的變量。 我曾嘗試使用此代碼:從foreach到數組

if(!empty($_POST['res'])) { 
       foreach($_POST['res'] as $result_id) {  
        $new_id[] = $result_id; 
       } 
      } 

      echo $new_id[1]; 
      echo "<br>"; 
      echo $new_id[2]; 

但只打印出第一個。

+2

PHP數組從0開始,你需要使用'$ NEW_ID [0]'和'$ NEW_ID [1]' – jh1711

+0

因爲數組下標0 –

+0

_note_開始:'$ NEW_ID [0]'是與'$ _POST ['res'] [0]'相同'但沒有foreach – Jeff

回答

0

指標應符合0開始。因此,只要仔細觀察使用

echo '<pre>'; 
print_r($_POST['res']); 
echo '</pre>' 

這會給你的陣列看起來像感,讓你將有更好的瞭解如何讀您的陣列/檢索來自數組的值。 在這種情況下,我可以安全地說(通過觀察你的問題)你的數組有兩個值,我希望他們在索引0和1,如果你還沒有修改它們。

一直到你玩耍並改變它,默認數組從開始鍵0開始,所以改變最後兩行應該得到你的結果。

if(!empty($_POST['res'])) { 
      foreach($_POST['res'] as $result_id) {  
       $new_id[] = $result_id; 
      } 
     } 

     echo $new_id[0]; 
     echo "<br>"; 
     echo $new_id[1]; 

,是的,最後三行可以組合成一個像這樣的:

echo $new_id[0].'<br>'.$new_id[1]; 

,並在你的代碼,如果你沒有得到POST值,它會拋出未定義指數的警告。

您需要將所有這些回聲包裝在條件中,或者您可以爲您的循環設置一個else。

if(!empty($_POST['res'])) { 
      foreach($_POST['res'] as $result_id) {  
       $new_id[] = $result_id; 
      } 
    echo $new_id[0].'<br>'.$new_id[1];  
}