0

array_merge を使用して、以前に作成した配列にユーザー入力を追加しようとしています。ただし、新しい配列全体を順序付けられていないリストとしてエコーするのに問題があります。ユーザーのエントリは正しく処理されていますが、元の配列は順序付けられていないリスト内で「配列」として表示されています。コードは次のとおりです。

<?php
$travel = array("Automobile", "Jet", "Ferry", "Subway");

foreach ($travel as $t)
    {
    echo "<ul>";

    echo "<li>$t</li>";

    echo "</ul>";

    }
?>

<form action="arrays.php" method="post">
<input type="text" name="added" />
<?php

foreach ($travel as $t)
{
echo "<input type=\"text\" name=\"travel[]\" value=\"$t\" />";      
}

?>
<input type="submit" name="submit" value="Add More!" />
</form>

<?php

$travel = array($_POST["travel"]);

$added = explode(",", $_POST["added"]);

$travel = array_merge($travel, $added);

echo "<p> Here is the list with your additions:</p>";

echo "<ul>";

foreach ($travel as $t)
{
echo "<li>$t</li>";
}

echo "</ul>";
?>
4

3 に答える 3

0

array_merge() によって作成された新しい配列に新しい変数名を使用してみてください。格納先の配列を変更する際に問題が発生する可能性があると思います。

于 2011-08-06T04:35:21.067 に答える
0

問題は次のように解決されました。

if (isset($_POST["submit"]))
{
$travel = $_POST["travel"];
$added = explode(",", $_POST["added"]);
$travel = array_merge($travel, $added);


echo "<p> Here is the list with your additions:</p>";

echo "<ul>";

foreach ($travel as $t)
    {
    echo "<li>$t</li>";
    }

echo "</ul>";
}
?>
于 2011-08-06T15:06:06.123 に答える
0
$travel = array($_POST["travel"]);

する必要があります

$travel = $_POST['travel'];
于 2011-08-06T04:41:26.970 に答える