FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Array count for each value in turn syntax?
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: Array count for each value in turn syntax? [message #169867 is a reply to message #169864] Wed, 29 September 2010 00:22 Go to previous messageGo to previous message
Hamish Campbell is currently offline  Hamish Campbell
Messages: 15
Registered: September 2010
Karma:
Junior Member
On Sep 29, 12:41 pm, GarryJones <mor...@algonet.se> wrote:
> An array contains the values 109,110,117
>
> The table contains
>
> ItemTypeCode - ItemData
>
> 109 njj
> 109 jfdjf
> 109 mdmd
> 109 jdjd
> 110 jf
> 110 jfjf
> 117 jgjg
> 117 jfjfjf
> 118 nfnf
>
> I want to use the array to give me the results of how many there are
> of each type
>
> So the output would be
> 109 = 4
> 110 = 2
> 117 = 2
> (in this case the entries for type 118 are not displayed because 118
> it not in the array)
>
> The table data is just an example, in my actual table its a few more
> columns.
>
> I plan to show these in a table with bold row headings with
> statistical data before the actual data rows
>
> The row headings will need to contain the number of data rows in the
> following data rows belonging to its type.
>
> I can run through the array and use a counter, then output the number
> then run through the array again to display the data. I am guessing I
> don't have to do that, surely these is some kind of "how many are" php
> command? But I am stuck here.
>
> Any help greatly appreciated.
>
> Garry Jones
> Sweden

The MySQL manual has an example that should be instructive:

<http://dev.mysql.com/doc/refman/5.0/en/group-by-
functions.html#function_count>

If you want to count the number of array items with the same value, it
would be very inefficient to iterate through the array for each item.
One simple way would look like:

<?php
$items = array(
"apple", "banana", "apple", "pear", "orange", "pear", "apple"
);
$totals = array();

// Count totals for each $items key:
foreach($items as $item)
isset($totals[$item]) ? $totals[$item] = 1 : $totals[$item]++;

print_r($totals);
// result: Array ( [apple] => 3 [banana] => 1 [pear] => 2 [orange] =>
1 )
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Iterative interfacing between client and server
Next Topic: Problems modifying date using regex
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Sat Nov 30 09:36:54 GMT 2024

Total time taken to generate the page: 0.04337 seconds