我的代码是:
POST的HTML部分:
<form action='key.php' method='POST'>
<input type='number' name='consumervar[]' value='512'/>
<input type='number' name='consumervar[]' value='256'/>
<input type='number' name='consumervar[]' value='1024'/>
<input type='submit'/>
</form>
key.php的PHP代码:
<?PHP
foreach ($_POST as $key => $value) {
$consumervar = $value*64;
}
print_r($consumervar); // this is for for debug (see array contents)
?>
当我运行它重现的所有内容时,请尝试:
Fatal error: Unsupported operand types in /var/blahblah/blahblah/key.php on line 3
请帮忙。怎么做正确?它需要将每个发布的值乘以整数64。
答案 0 :(得分:5)
循环应该是
foreach($_POST['consumervar'] as $key => $value) {
^^^^^^^^^^^^^^^
如上所述,您的代码会提取您尝试乘以的consumervar值的ARRAY。你不能&#34;乘以&#34; php中的数组。
同样,请注意循环生成的$ key / $值只是数组中存在的内容的副本。您没有更改数组的值。为此,你应该做
$_POST['consumervar'][$key] = $value * 64;
答案 1 :(得分:0)
试试这个:
<?php
$arr = isset($_POST['consumervar']) ? $_POST['consumervar'] : array();
if(!is_array($arr)) die('some_error');
foreach($arr as $key => $value) {
$arr[$key] = $value*64;
}
print_r($arr); // this is for for debug (see array contents)
?>
$key
对应于HTML中input
元素中的“名称”。