0

foreach ループで配列を使用する場合

$stdlist = rtrim(trim($_POST['stdlist'], '/'), '/');
$stdlist = explode('/' , $stdlist);
print_r($stdlist);
foreach($stdlist as $value)
{
    echo "<br>";
    echo $_POST[$value];
}

配列 $stdlist は明らかに機能しています。印刷すると、次のように返されます。

Array ( [0] => 1 [1] => 6 [2] => 7 [3] => 8 )

私の問題は、foreach ループを使用して一度に 1 つの値を配列から抽出すると、次のようにページに出力されることです。

4
4
Notice: Undefined offset: 7 in C:\Program Files\wamp\www...on line 35
Notice: Undefined offset: 7 in C:\Program Files\wamp\www...on line 35

次のことを期待しているため、これが意図したとおりに機能していないことはわかっています。

1
6
7
8

誰かがなぜこれが起こっているのか、この問題を解決する方法を説明してもらえますか? ありがとう :-)

4

4 に答える 4

3

インデックスではなく元の配列値があるため、印刷する必要が$valueあります。そして、この post variable を爆発させ$valueて配列を取得しています。$stdlist$_POST['stdlist']

foreach($stdlist as $value)
{
  echo "<br>";
  echo $value;
}

これで、必要な結果が得られます。

于 2013-08-13T13:44:50.247 に答える
0

配列に foreach ループを使用するときにecho $_POST[$value];単に使用する代わりに、各ノードの値が自動的に抽出されます。echo $value

foreach ($array as $index=>$value){
   echo "index is $index and value associated with it is $value.";
}

お役に立てれば。

于 2013-08-13T13:48:39.403 に答える
0
foreach($stdlist as $value)
{
  echo "<br>";
  echo $value;
}

foreachを使用する場合、$valueは配列内の位置ではありません。位置を使用する場合は、行う必要があります

for($pos=0; $pos<sizeof($stdlist); $pos++)
{
  echo "<br>";
  echo $stdlist[$pos];
}
于 2013-08-13T13:53:58.290 に答える