【问题标题】:Fatal error: Unsupported operand types in PHP致命错误:PHP 中不支持的操作数类型
【发布时间】:2017-09-05 14:37:24
【问题描述】:

我有那个代码,我想将 corp_resp 与 corp_resp_template 相乘并动态求和。

$total = (array_reduce((array_map(function($x, $y) { return $x * $y; },
                   $corp_resp, $corp_resp_template)),function($carry,$item){return $carry+=$item;},0));
echo $total;

代码:

 $valor[] = array();
   foreach ( $_POST as $key => $value ){

       $valor[] = $value;

corp_resp 输出:

array(17) { [0]=> array(0) { } [1]=> string(4) "0.00" [2]=> string(4) "0.00" [3]=> string(4) "0.00" [4]=> string(4) "0.00" [5]=> string(4) "0.50" [6]=> string(4) "0.00" [7]=> string(4) "0.00" [8]=> string(4) "0.00" [9]=> string(4) "0.00" [10]=> string(4) "0.50" [11]=> string(4) "0.00" [12]=> string(4) "0.00" [13]=> string(4) "0.00" [14]=> string(4) "0.00" [15]=> string(4) "0.00" [16]=> string(4) "0.00" } 

代码:

$corp_resp_template = array();

while ($mostrar = mysql_fetch_array($consulta)) {

$corp_resp_template[] = $mostrar['corp_resp_template'];
}

corp_resp_template 输出:

array(17) { [0]=> string(4) "0.15" [1]=> string(4) "0.15" [2]=> string(4) "0.15" [3]=> string(4) "0.15" [4]=> string(4) "0.15" [5]=> string(4) "0.15" [6]=> string(4) "0.15" [7]=> string(4) "0.15" [8]=> string(4) "0.15" [9]=> string(4) "0.15" [10]=> string(4) "0.15" [11]=> string(4) "0.15" [12]=> string(4) "0.15" [13]=> string(4) "0.15" [14]=> string(4) "0.15" [15]=> string(4) "0.15" [16]=> string(4) "0.15" } 

出现以下错误:Fatal error: Unsupported operand types in C: 其中 2 是数组。

另一个疑问是当我有 corp_resp_template 并且我想在同一个函数中为不同的 corp_resp 执行结果时如何工作?

【问题讨论】:

  • 如何在回调中使用var_dump($item);,看看会发生什么。提示:数组不能添加到值中,+= 不适用于数组。也适用于* 测试还有var_dump($x);$y
  • 而 finllay array_map 没有第二个参数,例如 $carray,$item for array_reduce()。所以这行不通。
  • function($x, $y) { var_dump($x); var_dump($y); return $x * $y; }
  • function($carry,$item){var_dump($carry); var_dump($item); return $carry+=$item;}
  • 祝你有美好的一天

标签: php arrays array-map array-reduce


【解决方案1】:

这已通过 array_shift 函数解决。格式数组在两个变量中都不同,这就是为什么会出现该错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多