Код ниже не будет работать из-за этой строки $params=array($data);
. Для этого нужно что-то кроме $ data. Или что-то должно произойти с $ data до этой строки.
Если строка записана как $ params = array ("A", "B", "C", "D"); тогда он отлично работает, но мой массив находится в переменной $ data, а не записан таким образом. Если есть способ преобразовать массив в записываемый таким образом, это тоже сработает.
Конечный результат должен показывать каждую возможную комбинацию (не перестановку) содержимого массива. Как и в примере выше, он показывает ABC, BD и т. Д.
$data = mysql_query('SELECT weight FROM my_table WHERE session_id = "' . session_id() . '"');
$params=array($data);
$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;
}