Re: [PHP] Using usort in a class

2010-04-22 Thread Adam Richardson
On Thu, Apr 22, 2010 at 2:12 PM, Ashley Sheridan
a...@ashleysheridan.co.ukwrote:

 I've not had to do this before, and now that I am, I've hit a bit of a
 wall:

 Basically, I've an array that might look like this (the number of
 elements may vary, but the letter is always unique and remains a single
 character):

 Array(
0 = '2h'
1 = '1d'
2 = '2w'
 )

 And I need to sort them according to their letter. If I wasn't using
 classes, I could just use usort($array, 'custom_sort') but when I do
 that within my class, I'm told it can't find the function. I've tried
 usort($array, $this::custom_sort) and usort($array,
 $Gantt_Task::custom_sort), both of which throw up the rather frightening
 unexpected double colon error (if you've ever seen one you'll know what
 I'm on about!)

 Does anyone know how I can do a usort within a class without resorting
 to making my sorting function a global function that isn't part of the
 class? I'd rather keep this tidy and everything in the class that needs
 to be in it, so a random function sitting outside is something I want to
 avoid if possible.

 Alternatively, if anyone knows a better way than using usort I'm all
 ears!

 Thanks,
 Ash
 http://www.ashleysheridan.co.uk



Try using an array to pass in the function:

usort($array, array('ClassName', 'staticMethodName'));

Adam

-- 
Nephtali:  PHP web framework that functions beautifully
http://nephtaliproject.com


Re: [PHP] Using usort in a class

2010-04-22 Thread Ashley Sheridan
On Thu, 2010-04-22 at 14:26 -0400, Adam Richardson wrote:

 On Thu, Apr 22, 2010 at 2:12 PM, Ashley Sheridan
 a...@ashleysheridan.co.uk wrote:
 
 I've not had to do this before, and now that I am, I've hit a
 bit of a
 wall:
 
 Basically, I've an array that might look like this (the number
 of
 elements may vary, but the letter is always unique and remains
 a single
 character):
 
 Array(
0 = '2h'
1 = '1d'
2 = '2w'
 )
 
 And I need to sort them according to their letter. If I wasn't
 using
 classes, I could just use usort($array, 'custom_sort') but
 when I do
 that within my class, I'm told it can't find the function.
 I've tried
 usort($array, $this::custom_sort) and usort($array,
 $Gantt_Task::custom_sort), both of which throw up the rather
 frightening
 unexpected double colon error (if you've ever seen one you'll
 know what
 I'm on about!)
 
 Does anyone know how I can do a usort within a class without
 resorting
 to making my sorting function a global function that isn't
 part of the
 class? I'd rather keep this tidy and everything in the class
 that needs
 to be in it, so a random function sitting outside is something
 I want to
 avoid if possible.
 
 Alternatively, if anyone knows a better way than using usort
 I'm all
 ears!
 
 Thanks,
 Ash
 http://www.ashleysheridan.co.uk
 
 
 
 
 Try using an array to pass in the function:
 
 
 
 usort($array, array('ClassName', 'staticMethodName'));
 
 
 Adam
 
 
 -- 
 Nephtali:  PHP web framework that functions beautifully
 http://nephtaliproject.com
 

Thanks! I literally just found that answer as your reply came through.
It's a bit of a facepalm moment here right now, as I'm ashamed to say
that the answer was on the manual pages all along, which I'd failed to
read properly :-/

Thanks,
Ash
http://www.ashleysheridan.co.uk




Re: [PHP] Using usort in a class

2010-04-22 Thread Adam Richardson
On Thu, Apr 22, 2010 at 2:25 PM, Ashley Sheridan
a...@ashleysheridan.co.ukwrote:

  On Thu, 2010-04-22 at 14:26 -0400, Adam Richardson wrote:

 On Thu, Apr 22, 2010 at 2:12 PM, Ashley Sheridan a...@ashleysheridan.co.uk
 wrote:

  I've not had to do this before, and now that I am, I've hit a bit of a
 wall:

 Basically, I've an array that might look like this (the number of
 elements may vary, but the letter is always unique and remains a single
 character):

 Array(
0 = '2h'
1 = '1d'
2 = '2w'
 )

 And I need to sort them according to their letter. If I wasn't using
 classes, I could just use usort($array, 'custom_sort') but when I do
 that within my class, I'm told it can't find the function. I've tried
 usort($array, $this::custom_sort) and usort($array,
 $Gantt_Task::custom_sort), both of which throw up the rather frightening
 unexpected double colon error (if you've ever seen one you'll know what
 I'm on about!)

 Does anyone know how I can do a usort within a class without resorting
 to making my sorting function a global function that isn't part of the
 class? I'd rather keep this tidy and everything in the class that needs
 to be in it, so a random function sitting outside is something I want to
 avoid if possible.

 Alternatively, if anyone knows a better way than using usort I'm all
 ears!

 Thanks,
 Ash
 http://www.ashleysheridan.co.uk



 Try using an array to pass in the function:



  usort($array, array('ClassName', 'staticMethodName'));



  Adam


 --
 Nephtali:  PHP web framework that functions beautifully
 http://nephtaliproject.com


 Thanks! I literally just found that answer as your reply came through. It's
 a bit of a facepalm moment here right now, as I'm ashamed to say that the
 answer was on the manual pages all along, which I'd failed to read properly
 :-/


   Thanks,
 Ash
 http://www.ashleysheridan.co.uk



No problem ;)

Adam

-- 
Nephtali:  PHP web framework that functions beautifully
http://nephtaliproject.com