用另一个数组的键替换数组的值。 PHP家庭作业

时间:2015-10-09 02:15:57

标签: php arrays forms implode

嗨,这有点难以言喻,所以我正在尽力解释发生了什么。我有一个表格,我有一个选择框。我不得不填写以下内容。

<?
       $PROVINCES = array("--" => "---Please Select Provinces---",
       "nf"=>"Newfoundland",
       "pe"=>"PrinceEdwardIsland",
       "nb"=>"New Brunswick",
       "ns"=>"Nova Scotia",
       "qc"=>"Quebec",
       "on"=>"Ontario",
       "mb"=>"Manitoba",
       "sk"=>"Saskatchewan",
       "ab"=>"Alberta",
       "bc"=>"British Columbia",
       "nt"=>"Northwest Territories");?>

所以我做到了:

    <select name = "province[]" multiple size = "12" <?if ($_SERVER['REQUEST_METHOD'] == 'POST'){if (isset($errorList['province']))
    {
    echo "class=\"error\"";
    }}?>>
  <?php foreach($PROVINCES as $key => $value) { ?>
    <option value="<?php echo $key ?>"<?= (in_array($key, $_POST['province'] ) )?'selected':'';?>><?php echo $value?></option>
  <?php }?>
</select>

现在,下一步是创建一个包含$ _POST中所有值的表 但问题是,因为值是nf,pe,nb等,它会写在表中而不是PrinceEdwardIsland,New Brunswick,Nova Scotia。

echo '<table border="1" style="width:100%">';
    foreach($_POST as $name => $out)
    {

        echo '<tr>';
        echo '<td>';
        echo '<strong>';
        echo strtoupper($name);
        echo '</strong>';
        echo '</td>';

        echo '<td>';

        if (is_array($out))
        {

            count($_POST);


            $arrayOutput = implode(", ", $out);
            echo $arrayOutput;



        }

        else if (strlen($out) <= 0)
        {
            echo "---None supplied---";
        }
        else
        {
        echo $out;
        }
        echo '</td>';
        echo '</tr>';

    }


    echo '</table>';

但是你可以从这里看到,当我们在foreach循环中调用它时,我们有多个来自$ _POST的$ name。

正如你所看到的那样,当我执行is_array($ out)时,我内爆数组并将其拆分为“,”我只需要获取各省的全名,我有一个状态复选框,它只有必须显示复选框中的值。我试图找出如何获得$ PROVINCES的$键来替换$ _POST ['省']中的内爆值

希望我能够很好地解释它,让人们理解。

0 个答案:

没有答案