On 05/11/2010 04:09 PM, Shawn McKenzie wrote:
> On 05/11/2010 02:17 PM, Paul Halliday wrote:
>> On Tue, May 11, 2010 at 4:03 PM, Jim Lucas <li...@cmsws.com> wrote:
>>> Paul Halliday wrote:
>>>> On Tue, May 11, 2010 at 2:25 PM, Jim Lucas <li...@cmsws.com> wrote:
>>>>> Paul Halliday wrote:
>>>>>> I have this:
>>>>>>
>>>>>> while ($row = mysql_fetch_array($theData[0])) {
>>>>>>
>>>>>>     $col1[] = $row[0];
>>>>>>     $col2[] = lookup($row[1]); // this goes off and gets the country 
>>>>>> name.
>>>>>>
>>>>>> I then loop through col1 and col2 to produce something like this:
>>>>>>
>>>>>> 52    ARMENIA
>>>>>> 215   CANADA
>>>>>> 57    CANADA
>>>>>> 261   COLOMBIA
>>>>>> 53    EGYPT
>>>>>> 62    INDIA
>>>>>> 50    INDIA
>>>>>>
>>>>>> Is there a way I can group these?
>>>>>>
>>>>>> Thanks!
>>
>>
>>>>>>
>>>>> Group them??
>>>>>
>>>>> How about this
>>>>>
>>>>> while ($row = mysql_fetch_array($theData[0])) {
>>>>>
>>>>>    $col1[lookup($row[1])][] = $row[0];
>>>>>
>>>>> which, using the data you showed, will give you this
>>>>>
>>>>>
>>>>> Array
>>>>> (
>>>>>    [ARMENIA] => Array
>>>>>        (
>>>>>            [0] => 52
>>>>>        )
>>>>>
>>>>>    [CANADA] => Array
>>>>>        (
>>>>>            [0] => 215
>>>>>            [1] => 57
>>>>>        )
>>>>>
>>>>>    [COLOMBIA] => Array
>>>>>        (
>>>>>            [0] => 261
>>>>>        )
>>>>>
>>>>>    [EGYPT] => Array
>>>>>        (
>>>>>            [0] => 53
>>>>>        )
>>>>>
>>>>>    [INDIA] => Array
>>>>>        (
>>>>>            [0] => 62
>>>>>            [1] => 50
>>>>>        )
>>>>>
>>>>> )
>>>>>
>>>>> --
>>>>> Jim Lucas
>>>>>
>>>>>   "Some men are born to greatness, some achieve greatness,
>>>>>       and some have greatness thrust upon them."
>>>>>
>>>>> Twelfth Night, Act II, Scene V
>>>>>    by William Shakespeare
>>>>>
>>>>
>>>> I was actually hoping to have them arranged like:
>>>>
>>>> $col1[0] = INDIA
>>>> $col2[0] = 112
>>>> $col1[1] = CANADA
>>>> $col2[1] = 272
>>>> ...
>>>>
>>>> Thanks.
>>>>
> 
> I would probably do this:
> 
> $col1 = $col2 = array();
> 
> while ($row = mysql_fetch_array($theData[0])) {
>       $country = lookup($row[1]);
> 
>       if(($found = array_search($country, $col1)) !== false) {
>               $col2[$found] += $row[0];
>       } else {
>               $col1[] = $country;
>               $col2[] = $row[0];
>       }
> }
> 

Although I myself would prefer it to be in this format:

$result = array();

foreach($rows as $row) {
        $country = lookup($row[1]);

        if(isset($result[$country])) {
                $result[$country] += $row[0];
        } else {
                $result[$country] = $row[0];
        }
}

Which would give:

array
(
   INDIA => 112
   CANADA => 272
   //etc...
)

Then to use, just:

foreach($result as $country => $value) {
        echo $country . ' ' . $value;  // or whatever
}

-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to