Re: Count the number of unique values of field in object in array



..oO(Dan Soendergaard)

I'm sure there is a simple solution to this problem, although it
sounds rather complex. I have an array of Entry objects with the
fields: ip, date (unix time), name. So, the array might contain this
data,

000.000.000.000 987678 hello
001.001.001.001 558821 hello
000.000.000.000 287999 something

What I want to do is to sort the array of objects by a field.
Essentially, I'd like something like:

sort($data, $object->name);
or
sort($data, $object->date);

Is there a way to do this in PHP, or do I have to write a function
myself? If yes, do you have any suggestions on how to do this?

You would have to write your own function and use it with usort().

Also, is there a way to make array_count_values() and array_unique()
operate on fields in objects?

Not really, but you could wrap the entire list into an object and add a
method to return a particular column from the list, e.g.

$data->getColumn(0);

would return an array containing all IP addresses, the parameter 1 would
return an array with all timestamps, 2 all the names. This would allow
you to use a lot of array functions on just a particular column. Even
the sorting could then probably be done with array_multisort().

HTH
Micha
.



Relevant Pages