-5

次のコードがあります。

foreach ($model_name as $md) {
    foreach ($years as $y) {
        $model_w_year[$y] = $md;
    } 
}

明らかに機能していません。出力される配列は次のようになります。

Array
(
    [1994] => Maxima
    [1995-1998] => Maxima
)

私はそれを次のようにしたい:

Array
(
    [1994] => Sentra
    [1995-1998] => Maxima
)

Model_name は前のページの $_SESSION['model_name'] で、years はフォーム配列です

echo "<form action='engine.php' method='post'>";
for ($i = 0; $i < count($model_name); $i++) {
   echo "Enter year or year range for: ", $model_name[$i], 
       " <input type='text' name='years[]'></input><br />";
}

そして、ここに私が持っているすべての配列構造があります:

Model make: 
Nissan
model name: 
Array
(
    [0] => Sentra
    [1] => Maxima
)

Number of models:  
2
Number of years: 
Array
(
    [0] => 1994
    [1] => 1995-1998
)

Model with Year: 
Array
(
    [1994] => Maxima
    [1995-1998] => Maxima
)

回答: はい、年をキーに、モデルを値にします。

4

2 に答える 2

1

Mike Brant の回答では、コードが思いどおりに機能しない理由が説明されています。あなたの理解が正しければ、配列は 2 つ$model_nameあり$years$years[$i]はユーザーが i: 番目のモデルに入力した年です。つまり、配列は次のようになります

Array (
  [???] => Sentra
  [???] => Maxima
)

この

Array (
  [0] => 1994
  [1] => 1995-1998
)

その場合、次のコードでうまくいくと思います。

$i = 0;
foreach ($model_name as $md) {
  $model_w_year[$years[$i]] = $md;
  $i++;
}

あまり美しくはありませんが、うまくいくと思います。

于 2013-04-01T16:26:54.840 に答える