Andres Gonzalez <andres@xxxxxxxxxxxxxxx> wrote on 06/23/2009 12:26:38 PM: > I want to modify $results within the foreach. In other words, > during a given pass of this iteration, I want to delete some > of the items based on particular conditions. Then on the next > pass thru the foreach, I want $results to be the newer, modified > array. > > This does not seem to work. It appears that the foreach statement > is implemented such that $results is read into memory at the start > so that any modifications I make to it during a given pass, are ignored > on the next pass. Is this true? foreach works on a copy of an array, so the behavior you saw is expected. See the online manual. You could use a while loop, or, instead of unset-ing elements of $results, store the elements you want to keep into a new array. Kirk