Answering my own answer. I see now how you are extracting the sub array
information.
My mistake.
Jim Lucas
----- Original Message -----
From: "Jim Lucas" <[EMAIL PROTECTED]>
To: "Rasmus Lerdorf" <[EMAIL PROTECTED]>; "Ralph" <[EMAIL PROTECTED]>
Cc: "PHP General Mailing List" <[EMAIL PROTECTED]>
Sent: Monday, June 02, 2003 9:57 AM
Subject: Re: [PHP] Shipping Rates
> is this correct?
>
> wouldn't you want the array to be like this?
>
> $rates = array('7.45'=>20,
> '8.45'=>35,
> '9.45'=>55,
> '10.45'=>80,
> '11.45'=>100,
> '13.45'=>150,
> '15.55'=>200,
> '19.45'=>999999999);
>
> otherwise your foreach would need to be a for loop something like this.
>
> for($i=0; $i<count($rates); $i++ )) {
> if( $num > current( key( $rates[$i] ) ) ) continue;
> else { $price = key( $rates[$i] ); break; }
> }
>
> Correct me if I am wrong.
>
> Jim Lucas
>
> ----- Original Message -----
> From: "Rasmus Lerdorf" <[EMAIL PROTECTED]>
> To: "Ralph" <[EMAIL PROTECTED]>
> Cc: "PHP General Mailing List" <[EMAIL PROTECTED]>
> Sent: Sunday, June 01, 2003 2:26 AM
> Subject: Re: [PHP] Shipping Rates
>
>
> > Better approach in what sense? From a performance perspective you are
not
> > going to beat a specific set of if conditions unless there is an
distinct
> > formula you can apply. I will assume there is no simple mathematical
> > relationship for your full set of data and what you are really looking
for
> > is a way to just feed the pricing structure into your code by some
> > mechanism and then have it just work, so your goal is to make it more
> > maintenable. To that end, you could stick your pricing table into an
> > array of arrays and simple loop through it. Something like this:
> >
> > function find_rate($num) {
> > $rates = array(array('7.45'=>20),
> > array('8.45'=>35),
> > array('9.45'=>55),
> > array('10.45'=>80),
> > array('11.45'=>100),
> > array('13.45'=>150),
> > array('15.55'=>200),
> > array('19.45'=>999999999));
> >
> > foreach($rates as $i => $vals) {
> > if($num > current($vals)) continue;
> > else { $price = key($vals); break; }
> > }
> > return $price;
> > }
> >
> > This should return the correct shipping price for whatever you pass into
> > find_rate().
> >
> > -Rasmus
> >
> > On Sun, 1 Jun 2003, Ralph wrote:
> >
> > > Maybe it's just that it's late, but can't seem to figure this out. I
> > > want to show a shipping price depending on the amount of purchase. I
> > > thought about using a lot of if() statements, but I know this is not
the
> > > best way to go about this.
> > >
> > > Can anybody enlighten me on this one and give me a better approach.
> > >
> > > Here is an example of my shipping rates:
> > >
> > > Less than $20.00 = $7.45
> > > $20.01-$35.00 = $8.45
> > > $35.01- $55.00 = $9.45
> > > $55.01-$80.00 = $10.45
> > > $80.01-$100.00 = $11.45
> > > $100.01-$150.00 = $13.45
> > > $150.01-$200.00 = $15.55
> > > $200.01 or more = $19.45
> > >
> > > Thanks.
> > >
> > >
> > >
> > >
> > >
> > > --
> > > PHP General Mailing List (http://www.php.net/)
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php