2017-09-15 41 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];  
}