开发者

Add parts of a php mysql array together in little bunches? Leave out other parts of same array?

How can I change the code below so each part is added together in a little bunch instead of smushed together? If a little part that appears on the screen is 123, it should add 12+3 and display 15 instead of 123. I have tried sum_array and other things but it won't work to add PARTS with other PARTS in little bunches. I can only get it to display smushed together results how it is below, or add the wrong parts or the whole thing other ways.

 $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")
               开发者_如何学JAVA     $combination.=$array[$j];
            }
            $combinationsarray[]=$combination;
     echo $combination . "&lt;br&gt;"; 
        }
        return $combinationsarray;
    } 


It looks like

$combination.=$array[$j];

is your problem . in PHP is used for String Concatenation and not math. Because PHP is a loosely data typed language you are telling PHP to take the String value of $array[$j] and ".=" (append) it to $combination giving you the 12 .= 3 == "123" problem and not 15 like what you want. You should try += instead.


If I understand what you're trying to do, I think you want to use addition + instead of concatination . in the following line:

if($binary[$j]=="1")
    $combination += $array[$j];
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜