Re: [PHP] array conversion

[email protected] (Richard Quadling)
Newsgroups php.general
Message-ID <[email protected]>
On 19 February 2010 07:26, Adam Richardson <[email protected]> wrote:
> Or,
>
> function new_arr(array $arr)
> {
>    $count = count($arr);
>    if ($count % 2 != 0) throw new Exception('The new_arr() function
> requires an even number of elements.');
>    for ($i = 0; $i < $count; $i += 2)
>    {
>        $new_arr[$arr[$i]] = $arr[$i + 1];
>    }
>    return $new_arr;
> }
>
> $test = new_arr(array('k1', 'v1', 'k2', 'v2', 'k3', 'v3'));
>
> exit(var_dump($test));
>
> On Fri, Feb 19, 2010 at 1:19 AM, Larry Garfield <[email protected]>wrote:
>
>> On Thursday 18 February 2010 11:58:28 pm Paul M Foster wrote:
>> > On Fri, Feb 19, 2010 at 01:20:12PM +0800, Dasn wrote:
>> > > Hi guys. How to convert an array like:
>> > >
>> > > Array
>> > > (
>> > >     [0] => key1
>> > >     [1] => value1
>> > >     [2] => key2
>> > >     [3] => value2
>> > > )
>> > >
>> > > to
>> > >
>> > >
>> > > Array
>> > > (
>> > >     [key1] => value1
>> > >     [key2] => value2
>> > > )
>> > >
>> > > Is there a built-in function to do this?
>> > > Please Cc me. :)
>> > > Thank you in advance.
>> >
>> > I don't believe so, but rolling your own should not be too hard:
>> >
>> > $a = array($key1, $value1, $key2, $value2);
>> > $b = array();
>> > $numitems = count($a);
>> >
>> > for ($i = 0; $i < $numitems; $i++) {
>> >       if ($i % 2 == 0) {
>> >               $saved_key = $a[$i];
>> >       }
>> >       elseif ($i % 2 == 1) {
>> >               $b[$saved_key] = $a[$i];
>> >       }
>> > }
>> >
>> > Code is crude and untested, but you get the idea.
>> >
>> > Paul
>>
>> This would be even shorter, I think:
>>
>> foreach ($items as $i => $value) {
>>  $temp[$i % 2][] = $value;
>> }
>> $done = array_combine($temp[0], $temp[1]);
>>
>> (Also untested, just off the cuff...)
>>
>> --Larry Garfield
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>

I'd say that this cat is well and truly skinned!
>
> --
> Nephtali:  PHP web framework that functions beautifully
> http://nephtaliproject.com
>



-- 
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.