On 3/11/07, Satyam <Satyam@xxxxxxxxxxxxx> wrote:
----- Original Message ----- From: "Edward Vermillion" <evermillion@xxxxxxxxxxxx> To: "tedd" <tedd@xxxxxxxxxxxx> Cc: "Tijnema !" <tijnema@xxxxxxxxx>; <php-general@xxxxxxxxxxxxx> Sent: Sunday, March 11, 2007 8:57 PM Subject: Re: Array mysteries > > On Mar 11, 2007, at 1:59 PM, tedd wrote: > >> At 12:02 PM -0500 3/11/07, Edward Vermillion wrote: >>> On Mar 11, 2007, at 10:02 AM, tedd wrote: >>> >>>> At 3:05 PM +0100 3/11/07, Tijnema ! wrote: >>>>> On 3/11/07, tedd <<mailto:tedd@xxxxxxxxxxxx>tedd@xxxxxxxxxxxx > wrote: >>>>> >>>>> At 10:05 AM +0100 3/11/07, Tijnema ! wrote: >>>>>> >>>>>> - You could define $wdays inside the function >>>>>> function convert_from_weekday ($weekday) { >>>>>> $wdays = array >>>>>> (0 => "Sonntag" >>>>>> ,1 => "Montag" >>>>>> ,2 => "Dienstag" >>>>>> ,3 => "Mittwoch" >>>>>> ,4 => "Donnerstag" >>>>>> ,5 => "Freitag" >>>>>> ,6 => "Samstag" >>>>>> ); >>>>>> return $wdays[$weekday]; >>>>>> } >>>>>> $day = convert_from_weekday(0) // $day = "Sonntag" >>>>> >>>>> Tijnema: >>>>> >>>>> That's also a shorter version of a simple switch statement. >>>>> >>>>> I haven't thought of, or seen, that before -- thanks. >>>>> >>>>> tedd >>>>> >>>>> >>>>> Yeah it is, but i just used moved his $wdays inside the function... >>>>> >>>>> but well, there are ofcourse a lot of other options, as date ("l") >>>>> would also return the day of the month :) >>>>> >>>>> Tijnema >>>> >>>> >>>> It's the technique and not the specific data thing I was addressing. >>>> When I'm confronted with a case condition, I typically use the switch >>>> statement. But, your solution provided me with another way to look at >>>> that. >>>> >>>> Cheers, >>>> >>>> tedd >>> >>> But what's the cost of this in a loop, rebuilding the array each time, >>> as compared to a switch statement? Just another thought... >>> >> >> >> >> Ed >> >> It's just another way to look at a possible solution. >> >> As for the cost, what are we talking about? I doubt that a "typical" >> application would show any discernable difference in execution times. >> >> One could test this easy enough by running both through 50k loops, but >> even then I doubt that the times would be that much different -- but I >> may be wrong, been there before. >> >> Cheers, >> >> tedd > > I don't know if there would be any difference either, which is why it was > a question. > > Although Larry's suggestion of making the array static is something I > hadn't thought of. > > Overall it is an interesting concept to use an array instead of a switch, > and I do wonder at what point, if any, that the two would start to > diverge resource-wise. > > Would the array lookup be faster for a lesser-used option/key in a > situation where there were quite a few options? (you wouldn't have to go > through the whole switch to get to the option at the end (?) or would > you? I have no idea how that all works internally) > Yes, you would. It goes sequentially through each case:. The array, on the other hand, uses a hashing algorithm so it should be about even no matter which option you pick. Satyam
PHP is always fast, as long as you are not trying to do this 50k times, does it make sense if a function takes 0.00000056 or 0.00000057 seconds to execute? I don't think so, so that means this is all going about users preference. Tijnema