2012-11-18 63 views
0

我的代碼是:PHP乘陣列()*整數

的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> 

PHP代碼key.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

回答

5

乘以每一個發佈的值在循環應該是

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

書面,你的代碼翻出consumervar值,您嘗試繁殖的數組。你不能在php中「繁殖」數組。

同樣,請注意循環產生的$ key/$值只是數組中存在的副本。你沒有改變數組的值。對於這一點,你應該做的

$_POST['consumervar'][$key] = $value * 64; 
+0

謝謝!它的作用像魅力。 :d – xZero

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元素中的 「名稱」。