Re: [PHP] Arrays

[email protected] (Jim Lucas)
Newsgroups php.general
Message-ID <[email protected]>
On 02/25/2013 05:40 PM, Karl DeSaulniers wrote:
> Hi Guys/Gals,
> If I have an multidimensional array and it has items that have the same
> name in it, how do I get the values of each similar item?
>
> EG:
>
> specialservices => array(
> specialservice => array(
> serviceid => 1,
> servicename=> signature required,
> price => $4.95
> ),
> secialservice => array(
> serviceid => 15,
> servicename => return receipt,
> price => $2.30
> )
> )
>
> How do I get the prices for each? What would be the best way to do this?
> Can I utilize the serviceid to do this somehow?
> It is always going to be different per specialservice.
>
> TIA,
>
> Best,
>
> Karl DeSaulniers
> Design Drumm
> http://designdrumm.com
>
>

This will never work.  Your last array will always overwrite your 
previous array.

Here is how I would suggest building it:


$items = array(
     1 => array(
         serviceid => 1,
         servicename=> signature required,
         price => $4.95
     ),
     15 => array(
         serviceid => 15,
         servicename => return receipt,
         price => $2.30
     )
)

This will ensure that your first level indexes never overwrite themselves.

But, with that change made, then do this:

foreach ( $items AS $item ) {
   if ( array_key_exists('price', $item) ) {
     echo $item['price'];
   } else {
     echo 'Item does not have a price set';
   }
}

Resources:
http://php.net/foreach
http://php.net/array_key_exists

-- 
Jim Lucas

http://www.cmsws.com/
http://www.cmsws.com/examples/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.