user1045052
user1045052

Reputation: 23

How to merge 2 arrays in one with unique values

I have two arrays like this

array (
[0] => Array
    (
        [search_terms] => Big Black Gay
        [searches] => 1
    )

[1] => Array
    (
        [search_terms] => Men Seeking Men Personals
        [searches] => 1
    )
)

Another array like this

   array (
   [0] => Array
    (
        [search_terms] => Men Seeking Men Personals
        [clicks] => 1
    )
   )

How can I merge above two arrays without using any looping? Any php functionality is available for this? I need this kind of an out put

Array
(
[0] => Array
    (
        [search_terms] => Big Black Gay
        [searches] => 1
        [clicks] => 0
    )

[1] => Array
    (
        [search_terms] => Men Seeking Men Personals
        [searches] => 1
        [clicks] => 1
    )

)

Upvotes: 1

Views: 174

Answers (2)

Baba
Baba

Reputation: 95101

You can try

$data = array(
        0 => array(
                'search_terms' => 'Big Black Gay',
                'searches' => 1
        ),
        1 => array(
                'search_terms' => 'Men Seeking Men Personals',
                'searches' => 1
        )
);

$combine = array(
        0 => Array(
                'search_terms' => 'Men Seeking Men Personals',
                'clicks' => 1
        )
);

foreach ( $data as &$item ) {
    foreach ( $combine as $new ) {
        if ($item['search_terms'] == $new['search_terms'])
            $item['clicks'] = $new['clicks'];
    }

    if (! isset($item['clicks']))
        $item['clicks'] = 0;
}

print_r($data);

Output

Array
(
    [0] => Array
        (
            [search_terms] => Big Black Gay
            [searches] => 1
            [clicks] => 0
        )

    [1] => Array
        (
            [search_terms] => Men Seeking Men Personals
            [searches] => 1
            [clicks] => 1
        )

)

Upvotes: 2

nanobash
nanobash

Reputation: 5500

Take a look at array_merge

var_dump(array_merge($array_one,$array_two));

Upvotes: 5

Related Questions