RE: [PHP] Fast code to partially flatten an array based on severa l keys?
| From: | Martin Towell | Date: | Fri, 28 Jun 2002 01:10:38 +0000 |
| Subject: | RE: [PHP] Fast code to partially flatten an array based on severa l keys? | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-104244@lists.php.net to get a copy of this message | ||
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