Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php min()数组从foreach返回时出错_Php_Arrays_Foreach - Fatal编程技术网

php min()数组从foreach返回时出错

php min()数组从foreach返回时出错,php,arrays,foreach,Php,Arrays,Foreach,我从foreach循环中的函数计算并获取结果和数组,并对该结果执行min()或max(),但结果是错误的。有人能给我解释一下原因吗?谢谢 function subtract($a, $b){ $c=$b-$a; return $c. ','; } $r=3; $numbers = array(12, 11, 6, 9, 15); foreach ($numbers as $index=>$value) { $deductions[]=array(s

我从foreach循环中的函数计算并获取结果和数组,并对该结果执行min()或max(),但结果是错误的。有人能给我解释一下原因吗?谢谢

function subtract($a, $b){
    $c=$b-$a;
    return $c. ',';
    }
    $r=3;
$numbers = array(12, 11, 6, 9, 15);

foreach ($numbers as $index=>$value) {
    $deductions[]=array(subtract($r, $value));
    $minimum=min($deductions);
}
print_r($minimum);

在这种情况下,我得到的是12而不是3。

您可以使用
阵列行走
,正如前面所示的
阵列地图

function subtract($a, $b){
    $c=$b-$a;
    return $c;
    }
    $r=3;
$numbers = array(12, 11, 6, 9, 15);

foreach ($numbers as $index=>$value) {
    $deductions[]=array(subtract($r, $value));
    $minimum=min($deductions);
}
echo min($minimum);
$r=3;
$numbers = array(12, 11, 6, 9, 15);
array_walk($numbers,function($v,$k) use(&$result,$r){ $result[$k] = $v-$r;});
print_r(min($result));

只是可能,因为您的返回值中有一个
!(顺便说一句:简而言之,你的代码:
$numbers=[12,11,6,9,15];$r=3;echo min(数组映射(函数($v)use($r){return$v-$r;},$numbers));
)昏迷确实是问题所在。我认为coma只是在编译时被调用来显示的,实际上并不在数组中。谢谢你的快速回答+1.