我试图制作一个程序进行合成分割,这需要分解,所以我写了这个函数来计算一个有效的整数,但它永远不会改变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);
答案 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)
等你可以用内爆来做..