Re: Fast code to partially flatten an array based on several keys?
| From: | Morgan Grubb | Date: | Fri, 28 Jun 2002 01:16:48 +0000 |
| Subject: | Re: Fast code to partially flatten an array based on several keys? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-104245@lists.php.net to get a copy of this message | ||
Martin,
I'm happy to do it either way, but I can't think of a really fast way to do
it, which is why I thought I'd ask. =)
Morgan Grubb.
"Martin Towell" <martin.towell@world.net> wrote in message
news:6416776FCC55D511BC4E0090274EFEF508A54E@EXCHANGE...
> this sort of merging would be easier to do when you create the array
> (unless you need the other format for something else?)
>
> -----Original Message-----
> From: Morgan Grubb [mailto:morgan@autobuy.co.nz]
> Sent: Friday, June 28, 2002 11:09 AM
> To: php-general@lists.php.net
> Subject: [PHP] Fast code to partially flatten an array based on several
> keys?
>
>
> I have a large dataset which can contain many different fields, and I'm
> trying to flatten them in such a way that I can display it happily in a
> table.
>
> To simplify: I'm populating the array such (many many more fields, but
these
> will do):
>
> $i = 0;
> while ($row = mysql_fetch_assoc($result)) {
> $vehicles[$i]['dealer_id'] = $row['dealer_id'];
> $vehicles[$i]['vehicle_id'] = $row['vehicle_id'];
> $vehicles[$i][$row['company_id']] = $row['page_views'];
> $i++;
> }
>
> Now, if that vehicle_id and dealer_id combination exist, instead of adding
> it as another record completely,
> just add
>
> $vehicles[$existing_id][$row['company_id']] = $row['page_views'];
>
> The end result of this would be (if given two 'company_id' records for the
> given dealer):
>
> (
> [0] => Array
> (
> [dealer_id] => 645
> [vehicle_id] => 35073
> [1] => 10
> )
>
> [1] => Array
> (
> [dealer_id] => 645
> [vehicle_id] => 35073
> [0] => 6
> )
> )
>
> Turns into:
>
> (
> [0] => Array
> (
> [dealer_id] => 645
> [vehicle_id] => 35073
> [1] => 10
> [0] => 6
> )
> )
>
> Can anyone think of a fast way to do this either during creation of the
> array or after the array has been created? (A sort of fast_flatten($array)
> function) ?
>
> If anyone can think of something, I'd be really appreciative.
>
>
>
> Cheers,
> Morgan Grubb.
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php