如何在PHP中返回foreach循环中的数组

如何在PHP中返回foreach循环中的数组,php,arrays,foreach,Php,Arrays,Foreach,我想在一个函数中做一些计算,这个函数取一个常量值,然后取不同的值。为此,我创建了一个数组和一个变量,以及一个循环,该循环将获取数组的每个成员和常量值,并将它们传递给执行计算的函数。我想得到一个数组,然后我可以做更多的计算 function subtract($a, $b){ $c=$b-$a; return $c. ','; } $r=3; $numbers = array(12, 11, 6, 9); foreach ($numbers as $index=&

我想在一个函数中做一些计算,这个函数取一个常量值,然后取不同的值。为此,我创建了一个数组和一个变量,以及一个循环,该循环将获取数组的每个成员和常量值,并将它们传递给执行计算的函数。我想得到一个数组,然后我可以做更多的计算

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

foreach ($numbers as $index=>$value) {
    $deductions=array(subtract($r, $value));
    //$minimum=min($deductions);
    if (is_array($deductions)){
    //echo $deductions;
    }else{
        //echo "not array";
    }
}
//$minimum=min($deductions);
//echo $minimum;
echo $deductions;
我得到的是“数组”,而不是9,8,3,6 为什么会这样?非常感谢您的帮助。我知道echo是个局部问题 排列 ( [0] => 6, )
不是我想象中的9,8,3,6吗?

你不能
回送数组。改用
var\u dump
print\r

不能回送数组。尝试使用
print\r($扣减)
var\u dump($扣减)

此外,以下行可能不正确:

$deductions=array(subtract($r, $value));
这一行将继续替换前面的$DELECTIONS变量,因此数组中只有一个值(6),因为9-3是6。如果要创建一个值数组,需要按如下方式向数组中添加新值:

$deductions[] = subtract($r, $value);
您还可以:

 for($i=0;$i<count($deduction);$i++)
 {
 $return += $deduction[$i]." ";
 }
 echo $return;

for($i=0;$i)您正在字符串上下文中输出一个数组,它将成为字面单词
array
,例如
$foo=array('a');echo$foo
将输出
array
,而不是
a
。如果您想吐出数组的内容,那么
内爆()
将其转换为字符串。这也没有意义。您的函数返回字符串。将该字符串包装成数组,然后检查是否有数组。当然,它始终是一个数组-您只是在前一行将数组包装在字符串周围。感谢大家指出“echo”问题,但我还有另一个问题,这就是为什么当我在一个漂亮的数组中打印整个计算结果时,索引[0]中得到了6。我没有得到它。@kowjow7,成功了。我希望我能给你10分,但我要投票,接受我能为你做的一切。谢谢你much@kowjow7,是扣除额[]现在是一个实际的数组?为什么我不能在它上面执行常规函数,如sort、max、min之类的东西?是的,[]表示一个数组。您到底是如何使用这些函数的?您可能想在代码中发布一个新问题。