Re: Deleting elements from the middle of an array
| From: | Peter Lind | Date: | Mon, 14 Mar 2011 21:14:53 +0000 |
| Subject: | Re: Deleting elements from the middle of an array | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-311841@lists.php.net to get a copy of this message | ||
On 14 March 2011 22:10, Paul M Foster <paulf@quillandmouse.com> wrote:
> On Mon, Mar 14, 2011 at 09:34:33PM +0100, Peter Lind wrote:
>
>> On 14 March 2011 21:31, Paul M Foster <paulf@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.
Ahh, I see - you wanted me to guess at the actual circumstances of the
case instead of provide an answer to the example you posted. My bad.
--
<hype>
WWW: plphp.dk / plind.dk
LinkedIn: plind
BeWelcome/Couchsurfing: Fake51
Twitter: kafe15
</hype>