如何更改下面的代码,以便将每个部分添加到一起而不是一起刷?如果屏幕上显示的一小部分是123,它应该添加12 + 3并显示15而不是123.我已经尝试了sum_array和其他东西但是它不能用于在其他部分中添加PARTS和其他PARTS。我只能把它显示在一起的结果是如何在下面,或添加错误的部分或整个事情的其他方式。
$data = mysql_query('SELECT weight FROM my_table WHERE session_id = "' . session_id() . '"');
$params = array();
while ($row = mysql_fetch_assoc($data)) {
$params[] = $row['weight'];
}
$combinations=getCombinations($params);
function getCombinations($array)
{
$length=sizeof($array);
$combocount=pow(2,$length);
for ($i=1; $i<$combocount; $i++)
{
$binary = str_pad(decbin($i), $length, "0", STR_PAD_LEFT);
$combination='';
for($j=0;$j<$length;$j++)
{
if($binary[$j]=="1")
$combination.=$array[$j];
}
$combinationsarray[]=$combination;
echo $combination . "<br>";
}
return $combinationsarray;
}
答案 0 :(得分:0)
看起来像是
$combination.=$array[$j];
是你的问题。在PHP中用于字符串连接而不是数学。因为PHP是一种松散的数据类型语言,所以你告诉PHP将$ array [$ j]和“。=”(追加)的字符串值带到$ combination,给出12。= 3 ==“123”的问题,不像你想要的那样。你应该尝试+ =。
答案 1 :(得分:0)
如果我理解您要执行的操作,我认为您希望在以下行中使用添加+
而不是连接.
:
if($binary[$j]=="1")
$combination += $array[$j];