对于some或other的原因,PHP中的array_reduce
函数只接受整数,因为它是第三个参数。该第三参数被用作在整个还原过程的起点:PHP的array_reduce整数第三个参数的变通办法
function int_reduc($return, $extra) {
return $return + $extra;
}
$arr = array(10, 20, 30, 40);
echo array_reduce($arr, 'int_reduc', 0); //Will output 100, which is 0 + 10 + 20 + 30 + 40
function str_reduc($return, $extra) {
return $return .= ', ' . $extra;
}
$arr = array('Two', 'Three', 'Four');
echo array_reduce($arr, 'str_reduc', 'One'); //Will output 0, Two, Three, Four
在第二呼叫,所述'One'
被转换到它的整数值,这是0,然后使用。
为什么PHP这样做!?
任何变通办法欢迎...
编写您自己的函数。将PHP公开的所有内容都包裹起来这是不一致的地狱。 – 2009-10-15 12:28:40
@lonut:悲伤但真实。 – 2009-10-15 12:32:51