1

コードの何が問題になっていますか?

警告: 12 行目の foreach() に無効な引数が指定されています)

<?php

$id = array("price" => "10");

$id['price'][1] = $id['price'];
$id['price'][3] = ($id['price'] * 3 * 0.97);
$id['price'][6] = ($id['price'] * 6 * 0.95);

$id['price'][3] = round($id['price'][3],2);
$id['price'][6] = round($id['price'][6],2);

foreach($id['price'] as $money) {
  echo '<option value="'.$money.'">.'.$money.'$</option>'."\n";
}

?>
4

1 に答える 1

4

$id['price']は文字列 (定義したとおり) であり、配列ではないため、このエラーが発生します。

PHP では、配列インデックスとまったく同じように文字列インデックスにアクセスできるため、文字列の個々の文字を$id['price'][x]割り当てで設定し、foreach.

ループのvar_dump( $id['price']);前に実行すると、次のように表示されます。

string(7) "11 3  6"

配列が必要で、割り当てごとに配列内に異なる要素を作成する場合は、配列に初期化$id['price']し、要素を適切に追加します。

$id = array("price" => array( "10"));

$id['price'][1] = $id['price'][0];
$id['price'][3] = ($id['price'][0] * 3 * 0.97);
$id['price'][6] = ($id['price'][0] * 6 * 0.95);

$id['price'][3] = round($id['price'][3],2);
$id['price'][6] = round($id['price'][6],2);
于 2013-01-12T21:43:41.510 に答える