Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #11042 > unrolled thread
| Started by | "Peter H. Coffin" <hellsop@ninehells.com> |
|---|---|
| First post | 2011-01-27 14:46 -0600 |
| Last post | 2011-01-27 21:31 +0000 |
| Articles | 2 — 2 participants |
Back to article view | Back to comp.lang.php
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: sort array of objects by muliple values "Peter H. Coffin" <hellsop@ninehells.com> - 2011-01-27 14:46 -0600
Re: sort array of objects by muliple values Denis McMahon <denis.m.f.mcmahon@googlemail.com> - 2011-01-27 21:31 +0000
| From | "Peter H. Coffin" <hellsop@ninehells.com> |
|---|---|
| Date | 2011-01-27 14:46 -0600 |
| Subject | Re: sort array of objects by muliple values |
| Message-ID | <slrnik3mct.2mh.hellsop@nibelheim.ninehells.com> |
On Thu, 27 Jan 2011 11:59:28 -0800 (PST), Max wrote:
> On Jan 27, 8:10?pm, Jerry Stuckle <jstuck...@attglobal.net> wrote:
>> On 1/27/2011 2:04 PM, Max wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> > Is there a simple way to sort $array below like SQL it does? I.e.
>> > ORDER BY birthday ASC, name ASC
>> > Output would be Kevin, Michael, Alice
>>
>> > Thanks!
>>
>> > <?php
>> > class User {
>> > ? ? ?private $firstname;
>> > ? ? ?private $surname;
>> > ? ? ?private $birthday;
>>
>> > ? ? ?function __construct($firstname, $surname, $birthday) {
>> > ? ? ? ? ?$this->firstname = $name;
>> > ? ? ? ? ?$this->surname = $surname;
>> > ? ? ? ? ?$this->birthday = $birthday;
>> > ? ? ?}
>> > ? ? ?function __get($n) {
>> > ? ? ? ? ?return $this->$n;
>> > ? ? ?}
>> > }
>>
>> > $array = array (
>> > ? ? ? ? ?new User('Alice', ? ? ? 'Smith', ?'1960-01-01'),
>> > ? ? ? ? ?new User('Michael', ? 'Jordan', ?'1950-01-01'),
>> > ? ? ? ? ?new User('Kevin', ? ? ?'Dilan', ? ?'1950-01-01'),
>> > ? ? ? ? ?);
>>
>> Use usort() with a static member function. ?See
>>
>> http://us2.php.net/manual/en/function.usort.php
>>
>> for an example.
>
> it sorts only by one field
If you sort a sorted array by another column, what do you think happens
to the records in identically-keyed records?
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting. [TOFU := text oben,
Q: What is the most annoying thing on usenet? followup unten]
[toc] | [next] | [standalone]
| From | Denis McMahon <denis.m.f.mcmahon@googlemail.com> |
|---|---|
| Date | 2011-01-27 21:31 +0000 |
| Message-ID | <4d41e4cf$0$13807$bed64819@gradwell.net> |
| In reply to | #11042 |
On 27/01/11 20:46, Peter H. Coffin wrote:
> On Thu, 27 Jan 2011 11:59:28 -0800 (PST), Max wrote:
>> On Jan 27, 8:10?pm, Jerry Stuckle <jstuck...@attglobal.net> wrote:
>>> On 1/27/2011 2:04 PM, Max wrote:
>>>
>>>> Is there a simple way to sort $array below like SQL it does? I.e.
>>>> ORDER BY birthday ASC, name ASC
>>>> Output would be Kevin, Michael, Alice
>>>
>>>> Thanks!
>>>
>>>> <?php
>>>> class User {
>>>> ? ? ?private $firstname;
>>>> ? ? ?private $surname;
>>>> ? ? ?private $birthday;
>>>
>>>> ? ? ?function __construct($firstname, $surname, $birthday) {
>>>> ? ? ? ? ?$this->firstname = $name;
>>>> ? ? ? ? ?$this->surname = $surname;
>>>> ? ? ? ? ?$this->birthday = $birthday;
>>>> ? ? ?}
>>>> ? ? ?function __get($n) {
>>>> ? ? ? ? ?return $this->$n;
>>>> ? ? ?}
>>>> }
>>>
>>>> $array = array (
>>>> ? ? ? ? ?new User('Alice', ? ? ? 'Smith', ?'1960-01-01'),
>>>> ? ? ? ? ?new User('Michael', ? 'Jordan', ?'1950-01-01'),
>>>> ? ? ? ? ?new User('Kevin', ? ? ?'Dilan', ? ?'1950-01-01'),
>>>> ? ? ? ? ?);
>>>
>>> Use usort() with a static member function. ?See
>>>
>>> http://us2.php.net/manual/en/function.usort.php
>>>
>>> for an example.
>>
>> it sorts only by one field
>
> If you sort a sorted array by another column, what do you think happens
> to the records in identically-keyed records?
It's not an array of columns, it's an array of records (or objects
defined by the class constructor), and what he needs is a compare
function callback for usort that's aware of the class structure and the
properties he wants to sort by.
Pretty trivial exercise really.
Rgds
Denis McMahon
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.php
csiph-web