Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<h2>Try</h2> <pre><code>$test = array (); $test [0] = json_decode ( '[["A"]]', true ); $test [1] = json_decode ( '[["A"], ["B"], ["C"]]', true ); $test [2] = json_decode ( '[["A", "B"], ["C", "D", "E"], ["F"]]', true ); echo "&lt;pre&gt;" ; $set = array (); getSet ( $test, $set ); $set = array_values(array_unique($set)); $return = powerSet($set,1,3); print_r ($return); </code></pre> <h2>Output</h2> <pre><code>Array ( [0] =&gt; Array ( [0] =&gt; F ) [1] =&gt; Array ( [0] =&gt; E ) [2] =&gt; Array ( [0] =&gt; E [1] =&gt; F ) [3] =&gt; Array ( [0] =&gt; D ) [4] =&gt; Array ( [0] =&gt; D [1] =&gt; F ) [5] =&gt; Array ( [0] =&gt; D [1] =&gt; E ) [6] =&gt; Array ( [0] =&gt; D [1] =&gt; E [2] =&gt; F ) [7] =&gt; Array ( [0] =&gt; C ) [8] =&gt; Array ( [0] =&gt; C [1] =&gt; F ) [9] =&gt; Array ( [0] =&gt; C [1] =&gt; E ) [10] =&gt; Array ( [0] =&gt; C [1] =&gt; E [2] =&gt; F ) [11] =&gt; Array ( [0] =&gt; C [1] =&gt; D ) [12] =&gt; Array ( [0] =&gt; C [1] =&gt; D [2] =&gt; F ) [13] =&gt; Array ( [0] =&gt; C [1] =&gt; D [2] =&gt; E ) [14] =&gt; Array ( [0] =&gt; B ) [15] =&gt; Array ( [0] =&gt; B [1] =&gt; F ) [16] =&gt; Array ( [0] =&gt; B [1] =&gt; E ) [17] =&gt; Array ( [0] =&gt; B [1] =&gt; E [2] =&gt; F ) [18] =&gt; Array ( [0] =&gt; B [1] =&gt; D ) [19] =&gt; Array ( [0] =&gt; B [1] =&gt; D [2] =&gt; F ) [20] =&gt; Array ( [0] =&gt; B [1] =&gt; D [2] =&gt; E ) [21] =&gt; Array ( [0] =&gt; B [1] =&gt; C ) [22] =&gt; Array ( [0] =&gt; B [1] =&gt; C [2] =&gt; F ) [23] =&gt; Array ( [0] =&gt; B [1] =&gt; C [2] =&gt; E ) [24] =&gt; Array ( [0] =&gt; B [1] =&gt; C [2] =&gt; D ) [25] =&gt; Array ( [0] =&gt; A ) [26] =&gt; Array ( [0] =&gt; A [1] =&gt; F ) [27] =&gt; Array ( [0] =&gt; A [1] =&gt; E ) [28] =&gt; Array ( [0] =&gt; A [1] =&gt; E [2] =&gt; F ) [29] =&gt; Array ( [0] =&gt; A [1] =&gt; D ) [30] =&gt; Array ( [0] =&gt; A [1] =&gt; D [2] =&gt; F ) [31] =&gt; Array ( [0] =&gt; A [1] =&gt; D [2] =&gt; E ) [32] =&gt; Array ( [0] =&gt; A [1] =&gt; C ) [33] =&gt; Array ( [0] =&gt; A [1] =&gt; C [2] =&gt; F ) [34] =&gt; Array ( [0] =&gt; A [1] =&gt; C [2] =&gt; E ) [35] =&gt; Array ( [0] =&gt; A [1] =&gt; C [2] =&gt; D ) [36] =&gt; Array ( [0] =&gt; A [1] =&gt; B ) [37] =&gt; Array ( [0] =&gt; A [1] =&gt; B [2] =&gt; F ) [38] =&gt; Array ( [0] =&gt; A [1] =&gt; B [2] =&gt; E ) [39] =&gt; Array ( [0] =&gt; A [1] =&gt; B [2] =&gt; D ) [40] =&gt; Array ( [0] =&gt; A [1] =&gt; B [2] =&gt; C ) ) </code></pre> <h2>Functions used</h2> <pre><code>function powerSet($in, $minLength = 1, $max = 10) { $count = count ( $in ); $members = pow ( 2, $count ); $return = array (); for($i = 0; $i &lt; $members; $i ++) { $b = sprintf ( "%0" . $count . "b", $i ); $out = array (); for($j = 0; $j &lt; $count; $j ++) { if ($b {$j} == '1') $out [] = $in [$j]; } if (count ( $out ) &gt;= $minLength &amp;&amp; count ( $out ) &lt;= $max) { $return [] = $out; } } return $return; } function getSet($array, &amp;$vals) { foreach ( $array as $key =&gt; $value ) { if (is_array ( $value )) { getSet ( $value, $vals ); } else { $vals [] = $value; } } return $vals; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload