zac1987
zac1987

Reputation: 2777

How to get value of 1 associative array by using the value in another array?

$gender = array ('boy', 'girl', 'trangender');
$shopping_data = array(
            'boy' => array(
                'accessory' => array('belt','wallet','watch'),
                'age' => array(20,45,50)
             ),
             'girl'=> array(
                'accessory' => array('hair-clip','wallet','watch'),
                'age' => array(30,40)
             )
);

how to get value "hair-clip" by using $gender?

Upvotes: 0

Views: 52

Answers (2)

Andreas
Andreas

Reputation: 23958

You mean loop and echo the items to each gender?

$gender = array ('boy', 'girl', 'trangender');
$shopping_data = array(
            'boy' => array(
                'accessory' => array('belt','wallet','watch'),
                'age' => array(20,45,50)
             ),
             'girl'=> array(
                'accessory' => array('hair-clip','wallet','watch'),
                'age' => array(30,40)
             )
);


foreach($gender as $gen){ // loop genders
    if(isset($shopping_data[$gen])){ // is gender in shopping_data
        echo $gen .":\n";
        foreach($shopping_data[$gen]["accessory"] as $acc){ // loop the accessories to the gender
            echo $acc . "\n";
        }
        echo "\n\n";
    }
}

output:

boy:
belt
wallet
watch


girl:
hair-clip
wallet
watch

https://3v4l.org/hjCrV

Upvotes: 0

Justin Schwimmer
Justin Schwimmer

Reputation: 185

Can you merge the two arrays at all?

I was thinking something along the lines of:

$gender = array_merge(array_flip($gender), $shopping_data);

echo '<pre>';
var_dump($gender['girl']['accessory'][0]);
echo '</pre>';
exit;

Upvotes: 1

Related Questions