title: Create couples of words in every possible combination from array
body: <p>My mind is a bit numb at the moment,</p>
  
  <p>suppose i have this array: </p>
  
  <pre><code>Array
  (
      [0] =&gt; foo
      [1] =&gt; bar
      [2] =&gt; love
  )
  </code></pre>
  
  <p>I'd like to create couples of possible combinations (minus one val),</p>
  
  <p>such as</p>
  
  <pre><code>foo bar
  bar love
  foo love
  </code></pre>
  
  <p>and not their opposite (but that's easier)</p>
  
  <pre><code>bar foo
  love bar
  love foo
  </code></pre>
  
  <p>of course the array can be of more elements, and in such cases i'd like to find</p>
  
  <pre><code>Array
  (
      [0] =&gt; foo
      [1] =&gt; bar
      [2] =&gt; love
      [3] =&gt; test
  )
  
  foo bar love
  bar love test
  love test foo
  
  foo love test
  bar test foo
  love test bar
  </code></pre>
  
  <p>and so on...</p>
  
  <p>any idea?</p>
  
  <p>thanks!</p>