PHP Multiply array()* integer

时间:2012-11-18 01:54:43

标签: php post integer

我的代码是:

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。

2 个答案:

答案 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元素中的“名称”。