0

我的代码是:

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。

4

2 回答 2

5

循环应该是

foreach($_POST['consumervar'] as $key => $value) {
              ^^^^^^^^^^^^^^^

如所写,您的代码提取了您尝试相乘的消费者变量值的数组。您不能在 php.ini 中“相乘”数组。

同样,请注意循环生成的 $key/$value 只是数组中存在的内容的副本。您没有更改数组的值。为此,你应该这样做

 $_POST['consumervar'][$key] = $value * 64;
于 2012-11-18T01:56:31.653 回答
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对应input于 HTML 元素中的“名称”。

于 2012-11-18T01:56:42.197 回答