<p>How else might you compare two arrays ($A and $B )and reduce matching elements out of the first to prep for the next loop over the array $A?</p>

<pre><code>$A = array(1,2,3,4,5,6,7,8);
$B = array(1,2,3,4);

$C = array_intersect($A,$B);  //equals (1,2,3,4)
$A = array_diff($A,$B);       //equals (5,6,7,8)
</code></pre>

<p>Is this the simplest way or is there a way to use another function that I haven't thought of?  My goal is to have an array that I can loop over, pulling out groups of related content (I have defined those relationships elsewhere) until the array returns false.</p>

You've got it. Just use
```
array_diff
```
or
```
array_intersect
```
. Doesn't get much easier than that.
Edit:
For example:
```
```
$arr_1 = array_diff($arr_1, $arr_2);
$arr_2 = array_diff($arr_2, $arr_1);
```
```
Source