Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If you clear up what it is you actually want to achieve, it maybe a little more help, but to be going on with, here is one way to get all the matches for a member of one group, without matching it to anyone from its own group - I will assume you plan on having multiple ID's and not a simple 1234, 5678, 9 10 11 12 in your working set:</p> <pre><code> // Build an example array: $numberSet = array( range(1,4), range(5,8), range(9,12) ); // The function will return an array of matches when passed the array and the ID: function findCombos($id, $set) { // Store the matches found: $matches = array(); // Loop through each array in the multidimensional array which was passed: foreach ($set as $group) { // Make sure the ID passed isn't a member of the current array, don't want its matches: if (!in_array($id, $group)) { // Loop through each array as the ID isn't a member of this group: foreach ($group as $member) { // Add the match the the matches array: $matches[] = $member; } } } // Pass the matches back: return $matches; } </code></pre> <p>Finally looking for a single users matches:</p> <pre><code> // Find all the matches for ID 2 from the multidimensional array: $matches = findCombos("2", $numberSet); // Display the nubmer of matches: echo "Found ".count($matches)." matches for 2.&lt;br/&gt;"; // Loop through each match found: foreach ($matches as $match) { // Display the results: echo "2 - ".$match."&lt;br/&gt;"; } </code></pre> <p>Results:</p> <pre><code>Found 8 matches for 2. 2 - 5 2 - 6 2 - 7 2 - 8 2 - 9 2 - 10 2 - 11 2 - 12 </code></pre> <p>If you wanted to show all possibilities you could do something like this:</p> <pre><code> $count = 0; foreach ($numberSet as $group) { foreach ($group as $member) { $matches = findCombos($member, $numberSet); $count = $count+count($matches); foreach ($matches as $match) { echo $member." - ".$match.", "; } } } echo "&lt;br/&gt;Found ".$count." possible combinations."; </code></pre> <p>Results:</p> <blockquote> <p>1 - 5, 1 - 6, 1 - 7, 1 - 8, 1 - 9, 1 - 10, 1 - 11, 1 - 12, 2 - 5, 2 - 6, 2 - 7, 2 - 8, 2 - 9, 2 - 10, 2 - 11, 2 - 12, 3 - 5, 3 - 6, 3 - 7, 3 - 8, 3 - 9, 3 - 10, 3 - 11, 3 - 12, 4 - 5, 4 - 6, 4 - 7, 4 - 8, 4 - 9, 4 - 10, 4 - 11, 4 - 12, 5 - 1, 5 - 2, 5 - 3, 5 - 4, 5 - 9, 5 - 10, 5 - 11, 5 - 12, 6 - 1, 6 - 2, 6 - 3, 6 - 4, 6 - 9, 6 - 10, 6 - 11, 6 - 12, 7 - 1, 7 - 2, 7 - 3, 7 - 4, 7 - 9, 7 - 10, 7 - 11, 7 - 12, 8 - 1, 8 - 2, 8 - 3, 8 - 4, 8 - 9, 8 - 10, 8 - 11, 8 - 12, 9 - 1, 9 - 2, 9 - 3, 9 - 4, 9 - 5, 9 - 6, 9 - 7, 9 - 8, 10 - 1, 10 - 2, 10 - 3, 10 - 4, 10 - 5, 10 - 6, 10 - 7, 10 - 8, 11 - 1, 11 - 2, 11 - 3, 11 - 4, 11 - 5, 11 - 6, 11 - 7, 11 - 8, 12 - 1, 12 - 2, 12 - 3, 12 - 4, 12 - 5, 12 - 6, 12 - 7, 12 - 8,</p> <p>Found 96 possible combinations. </p> </blockquote> <p>If you chenage $numberSet to:</p> <pre><code> $numberSet = array( array("a","b"), array("c", "d", "e", "f"), array("joe", "tom", "same") ); </code></pre> <p>The result:</p> <blockquote> <p>a - c, a - d, a - e, a - f, a - joe, a - tom, a - same, b - c, b - d, b - e, b - f, b - joe, b - tom, b - same, c - a, c - b, c - joe, c - tom, c - same, d - a, d - b, d - joe, d - tom, d - same, e - a, e - b, e - joe, e - tom, e - same, f - a, f - b, f - joe, f - tom, f - same, joe - a, joe - b, joe - c, joe - d, joe - e, joe - f, tom - a, tom - b, tom - c, tom - d, tom - e, tom - f, same - a, same - b, same - c, same - d, same - e, same - f,</p> </blockquote>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

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