2017-08-04 29 views
-1

このコードスニペットで何が問題なのか教えてください。 $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>';

+0

コピー&ペーストしています。 –

+1

print_r($ value);結果を表示できますか? –

+1

は 'アレイ([ "名"=> "ラベル"] => [ "量"] => [ "TEMP"] => D C B)'正しいアレイ形式ですか?私はそれが似すべきだと思います。この '配列(キー=>値、KEY2 =>値2、KEY3 =>値3、...)' ... –

答えて

0

です。なぜすべてのキーが二重引用符で囲まれているのですか?あなたのforeach

echo $value['"name"'];を試してみてください。それが機能する場合は、フォームからの入力が正しくありません。

+0

あなたの質問は、「なぜ、すべてのキーは...」うん、二重引用符は、HTML属性で必要とされていないなど – bmv

+0

一時、私は、キーワード名のための余分な引用符を追加しました私のhtmlコード、中に誤りに気づく作るのを助けました。 – iArcadia

0

あなたのキー文字列は、あまりにもそのリンクを共有するリンクからそれぞれの側で"

change ["name"] to ["\"name\""] 
関連する問題