how about creating two arrays, one empty one.
pop the elements
you want out of the first array and push them to the second.  skip
the push on the elements you don't want in the second array?

Just a thought.

--curtis

Paul M Foster wrote:
> On Mon, Mar 14, 2011 at 09:34:33PM +0100, Peter Lind wrote:
> 
>> On 14 March 2011 21:31, Paul M Foster
<pa...@quillandmouse.com> wrote:
>> > Here's what I
need to do: I have an indexed array, from which I need
>> to
>> > delete elements in the middle. Once completed, the indexes
should be
>> > numerically in sequence, as they were when I
first encountered the
>> > array. That is:
>>
>
>> > Before:
>> > $arr = array(0 => 5,
1 => 6, 2 => 7, 3 => 8, 4 => 9, 5 => 10);
>>
>
>> > After:
>> > $arr = array(0 => 5,
1 => 6, 2 => 9, 3 => 10);
>> >
>>
>
>> > I've tried:
>> >
>> >
1) Using for() with unset(). Elements are deleted, but the indexes are
>> > no longer sequential.
>> >
>>
> 2) Using for() with array_splice(). Understandably, deletes
certain
>> > elements but not others.
>> >
>> > 3) Using foreach() with referenced array elements. Neither
unset() nor
>> > array_splice() appear to have any effect on
the array at all.
>> >
>> > 4) while() loop
using current() and the like. But these array
>> functions
>> > return values, not references, so the array isn't actually
modified.
>> >
>> > 5) array_walk() with
unset() array_splice(). No effect on the array.
>> >
>> > Anyone know how to do this, or know of a reference on how
to?
>> >
>>
>> Remove the elements,
then use sort().
> 
> I've given a simplified example. The
actual target array is
> multi-dimensional. Sort() won't work in a
case like that, as far as I
> know. Moreover, I don't want the
array sorted based on the element
> values.
> 
>
Paul
> 
> --
> Paul M. Foster
>
http://noferblatz.com
> http://quillandmouse.com
> 
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
>

Reply via email to