php - 多维数组,找到所选值的键

标签 php html

我有一个代码,其中包含一个包含一堆水果的数组,其中产品 ID 和价格作为不同值的键。

我得到了正确的价格,但我如何得到所选产品的名称?例如,如果您选择“apple 1”,我希望答案是“The product apple costs 5.95”,而现在只是说“The product costs 5.95”。如您所见,我尝试进行 array_search 但没有取得好的结果。

我应该怎么做?

<?php
$a3 = array('apple' => array('productid' => '1',
                            'price' => '5.95'),
            'banana' => array('productid' => '2',
                            'price' => '122'),
            'squash' => array('productid' => '3',
                            'price' => '47.2'),
            'watermelon' => array('productid' => '4',
                            'price' => '1.2'),
            'potato' => array('productid' => '5',
                            'price' => '6.04')
            );
?>
<!DOCTYPE html>
<html>
 <body>
  <form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
    <select name="products">
        <?php
         foreach ($a3 as $key => $value){ ?>
            <option value="<?php echo $value['price']; ?>"><?php echo $key, " ", $value['productid']; ?></option>
        <?php
        } ?>
    </select>
    <input type="submit" name="showprice" value="Show the price">

    <?php
        if (isset($_POST['showprice'])){
                $price = $_POST['products'];
                $product = array_search("$price", $a3);

                echo "The product ". $product ." costs ". $price .".";
        }
    ?>

</form>

最佳答案

option 值应该是一个键。因为产品价格可以相同。我的意思是当您发布表单时,您的发布变量需要是唯一值“apple”。然后就可以从数组中获取产品节点。

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
    <select name="products">
        <?php
        foreach ($a3 as $key => $value){ ?>
            <option value="<?php echo $key; ?>"><?php echo $key, " ", $value['productid']; ?></option>
            <?php
        } ?>
    </select>
    <input type="submit" name="showprice" value="Show the price">

    <?php
    if (isset($_POST['showprice'])){
        $name       = $_POST['products'];
        $product    = $a3[$name];
        $price      = $product['price'];
        $productid = $product['productid'];
       echo "The product ". strtoupper($name) ." costs ". $price .".";
    }
    ?>
</form>

关于php - 多维数组,找到所选值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35983305/

相关文章:

php - 判断UTF-8文本是否全是ASCII?

php - 在椭圆形溢出文本中添加结束引号的简单方法

php - 将实现绑定(bind)到 Laravel 中的请求/响应?

java - 在没有 Owasp 库的情况下,如何在 Java 中转义 HTML 属性值?

javascript - 日期在 Highcharts 面积图中重叠

javascript - 如何将 js 表单元格值 POST 到 PHP 并插入到 MYSQL 数据库

javascript - 如何使用 jQuery 保存照片?

javascript - 使用转换 :rotate(); 时代码变慢

javascript - Css onclick 改变类

html - 具有不同屏幕尺寸的图像映射。