2017-09-15 6 views
0

私は、これらの2つのIDを取得して2つの別々の変数に保存できるようにするために、POST情報(別のページの2つのID)を受け取るスクリプトを持っています。私はforeachループでそれらを収集する方法を見つけましたが、どのようにそれらを抽出し、別々の変数として格納することができます。 私はこのコードを試してみました:from 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

インデックスは、取得/読み方のより良い理解を持つことになるので、これは、あなたの配列がどのように見えるかの感覚を与えるので、ちょうど慎重

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

を使用して、アレイを観察する0で始まる必要があります配列からの値。 この状況では、あなたの配列に2つの値があり、それらが変更されていなければインデックス0と1にあることを願っています(あなたの質問を守って)。

あなたが遊んでそれを変更するまでは、デフォルトの配列はキー0から始まり続けますので、最後の2行を変更すると結果が得られます。

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

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

とはい、最後の3行はこのように一つに組み合わせることができます:あなたはPOST値を取得しない場合、未定義のインデックスの警告を投げるために起こっている、

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

とあなたのコードで。

これらのエコーをすべて条件内にラップするか、ループのelseを設定する必要があります。

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