Код ниже не будет работать из-за этой строки $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; }