【问题标题】:echo an array into a dropdown with a foreach loop [closed]使用foreach循环将数组回显到下拉列表中[关闭]
【发布时间】:2015-07-17 20:19:42
【问题描述】:

我有一个二维数组,我想显示 3 个不同的下拉菜单。

我有数组:

$productPrices['yamaha']['French Horn'] = 2175.00;
$productPrices['yamaha']['Trumpet'] = 595.00;
$productPrices['yamaha']['Trombone'] = 775.00;
$productPrices['yamaha']['Tuba'] = 3807.00;

$productPrices['selmer']['Clarinet'] = 670.00;
$productPrices['selmer']['Oboe'] = 1999.00;
$productPrices['selmer']['Basoon'] = 7475.00; 
$productPrices['selmer']['Bass Clarinet'] = 2425.00;

$productPrices['cannonball']['Alto Saxophone'] = 2699.00;
$productPrices['cannonball']['Tenor Saxophone'] = 3197.00;  
$productPrices['cannonball']['Baritone Saxophone'] = 3964.00;
$productPrices['cannonball']['Soprano Saxophone'] = 2699.00;

$submit = "View Selection";

这是我的 Foreach 循环:

<?php
    echo "<h2>Product List</h2>";
    echo "<form action='catalog.php' method='post'>";
    foreach($productPrices as $category) {
        foreach($category as $product) {
            ...

这是回显它的代码,但我不知道如何使它成为多维的:

        ...
        foreach ($category as $select => $option) {
            echo "<option value='$product'>$option</option>";
        }
        echo "</select></div>";
        }
    }
    echo "<div id='submit'><input type='submit' value='$submit'></div></form>";
?>

【问题讨论】:

  • 我会说不要使用这个难看的硬编码数组,而是使用数据库,这样可以省去很多麻烦。
  • 我在这方面真的很陌生。所以要用数据库来显示这个数组。我将创建一个产品数据库,其中包含产品...价格...和...制造商让我们说....我将如何回显它以从数据库中显示?我会创建一个变量并将选择查询放入其中,然后创建一个 foreach 循环并将数据库中的选择回显到下拉菜单中......我该怎么做?

标签: php arrays multidimensional-array foreach


【解决方案1】:

我修改了您的代码以使其按预期工作...看看:

$submit = "View Selection";

echo "<h2>Product List</h2>";
echo "<form action='catalog.php' method='post'>";

foreach($productPrices as $category)
{
    echo "<div><select>";
    foreach($category as $select => $option)
    {
       echo "<option value='$option'>$select</option>";
    }
    echo "</select></div>";
}

echo "<div id='submit'><input type='submit' value='$submit'></div></form>";

Try it online

顺便说一句,我强烈建议您改进您的代码,例如将视图与逻辑分离,而不是过多地编码......

【讨论】:

  • 谢谢@gastonmancini 成功了!我会考虑你所说的并弄清楚如何将其纳入。
猜你喜欢
  • 1970-01-01
  • 2014-04-20
  • 1970-01-01
  • 2014-07-13
  • 2014-02-23
  • 1970-01-01
  • 2016-06-06
  • 1970-01-01
  • 2012-03-21
相关资源
最近更新 更多