-1

キーを介してアクセスするのではなく、インデックスでPOSTデータにアクセスする方法はありますか?次のコードを機能させたいのですが。

for($x = 0; $x < count($_POST); $x++)
    echo $x . ": " . $_POST[$x];

(はい、ループ内のカウントが悪いことを知っています。単純にするために使用しています)

問題は、どうやらインデックスで$ _POST変数にアクセスできないことです。これは、キーでアクセスする必要があります。キーを使用できない理由は、可変形式のデータを使用するため、POSTに多かれ少なかれ存在する可能性があるため、変数名を使用して可変数のキーをループできるようにする必要があります。

どんな助けでも大歓迎です!

編集:明確にするために、PHP配列はC ++列挙のように動作すると以前は想定していたため、混乱しました。

4

6 に答える 6

3

キーを介してアクセスするのではなく、インデックスでPOSTデータにアクセスする方法はありますか?

いいえ、数値インデックスはありません。

キーを使用できない理由は、可変形式のデータを使用するため、POSTに多かれ少なかれ存在する可能性があるため、変数名を使用して可変数のキーをループできるようにする必要があります。

連想配列をループすることができます。のドキュメントを参照してくださいforeach

foreach (array_expression as $key => $value)
  statement
于 2012-07-27T11:33:53.953 に答える
0

代わりにforeach()を使用してください。これは、数値配列でも機能します。

foreach ($_POST as $key=>$val)
    echo sprintf("%s: %s\n", $key, $val);
于 2012-07-27T11:33:14.333 に答える
0

foreachを使用しないのはなぜですか

foreach ($_POST as $key => $value) {
}

于 2012-07-27T11:34:03.943 に答える
0
foreach($_POST as $key=>$value) {
    echo $key. ":" .$value;
}
于 2012-07-27T11:34:30.547 に答える
0

インデックスとキーは同じものです。キーは数字(例$_POST[0])または文字列(例$_POST['foo'])のいずれかです。両方にすることはできません。$_POST['foo']を介してアクセスすることはできません$_POST[0]

于 2012-07-27T11:34:39.983 に答える
0

技術的には可能ですforeachが、優れています。

$postVals = array_value($_POST);
$postCount = count($_POST);
for($x = 0; $x < $postCount; $x++)
    echo $x . ": " . $postVals[$x];
于 2012-07-27T11:43:23.310 に答える