このコードスニペットで何が問題なのか教えてください。 $mylist
は、配列の配列で、次の構造をとります。 $mylist[$key] = Array (["name"] => a ["label"] => b ["amount"] => c ["temp"] => d)
。PHPのforeachループが動作しない
問題は次のとおりです。最初のprint_r($value);
ステートメントは正しい配列を出力しますが、配列の値を1つずつ呼び出すと、配列は空のようです。 (私はコピー&ペーストして、それが働いていた別のスクリプトから...)
$mylist = $_POST['mylist'];
foreach ($mylist as $key => $value) {
print_r($value);
echo "<br>";
echo "name=".$value["name"]."<br>";
echo "label=".$value["label"]."<br>";
echo "amount=".$value["amount"]."<br>";
echo "temp=".$value["temp"]."<br>";
}
編集
print_r($value)
の結果:var_dump($mylist)
の
Array (["name"] => a ["label"] => b ["amount"] => c ["temp"] => d)
結果:
array(4) { [178]=> array(4) { [""name""]=> string(1) "a" [""label""]=> string(1) "b" [""amount""]=> string(1) "c" [""temp""]=> string(1) "d" } [179]=> array(4) { [""name""]=> string(0) "" [""label""]=> string(0) "" [""amount""]=> string(0) "" [""temp""]=> string(0) "" } [180]=> array(4) { [""name""]=> string(0) "" [""label""]=> string(0) "" [""amount""]=> string(0) "" [""temp""]=> string(0) "" } [181]=> array(4) { [""name""]=> string(0) "" [""label""]=> string(0) "" [""amount""]=> string(0) "" [""temp""]=> string(0) "" } }
編集2.
$ _POSTは、その入力を取得、そこからコードがvar_dump
出力は奇妙です
'<tr><td><input type="text" name=\'myList['.$_id.']["name"]\' ></td><td><input type="text" name=\'myList['.$_id.']["label"]\' ></td><td><input type="text" name=\'myList['.$_id.']["amount"]\' ></td><td><input type="text" name=\'myList['.$_id.']["temp"]\' ></td></tr>';
コピー&ペーストしています。 –
print_r($ value);結果を表示できますか? –
は 'アレイ([ "名"=> "ラベル"] => [ "量"] => [ "TEMP"] => D C B)'正しいアレイ形式ですか?私はそれが似すべきだと思います。この '配列(キー=>値、KEY2 =>値2、KEY3 =>値3、...)' ... –