我有一个代码,其中包含一个包含一堆水果的数组,其中产品 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/