PHP数组值未被更改

时间:2016-09-13 03:58:16

标签: php arrays division factoring synthetic

我试图制作一个程序进行合成分割,这需要分解,所以我写了这个函数来计算一个有效的整数,但它永远不会改变php数组 $ factors 的值。 非常感谢任何帮助

$factors=array();
$i;
function factor($x){
    if($x==0){
        echo "(0,0)";
        } else {
            $n=false;
            if($x<0) {
                $x=abs($x);
                $n=true;
            }
            for($i=2; $i<=$x; $i++) {
                if($x%$i==0){
                    if($n){
                        $factors[(count($factors))]=(-1*($x/$i));
                        $factors[(count($factors))]=($i);
                        $factors[(count($factors))]=($x/$i);
                        $factors[(count($factors))]=(-1*$i);
                    } else {
                        $factors[(count($factors))]=($x/$i);
                        $factors[(count($factors))]=($i);
                    }
                }
            }
        }
    }
factor(-4);

1 个答案:

答案 0 :(得分:0)

试试这个

function factor($x){
     $factors=array();
    if($x==0){
        echo "(0,0)";
    } else {
        $n=false;
        if($x<0) {
            $x=abs($x);
            $n=true;
        }
        for($i=2; $i<=$x; $i++) {
            if($x%$i==0){
                if($n){
                    $factors[(count($factors))]=(-1*($x/$i));
                    $factors[(count($factors))]=($i);
                    $factors[(count($factors))]=($x/$i);
                    $factors[(count($factors))]=(-1*$i);
                } else {
                    $factors[(count($factors))]=($x/$i);
                    $factors[(count($factors))]=($i);
                }
            }
        } //end for
       echo '(' . implode(',', $factors). ')';
    } //end if $x == 0
}
factor(-4);

$factors超出了函数的范围,除了你没有返回或输出任何东西。看到你回声(0,0)我认为你想要它回应如(2,4,8)等你可以用内爆来做..