David
David

Reputation: 73

php arrays add value from one array to another array

I have 2 arrays, both generated from separate mysql queries as shown below:

ARRAY 1

[0] => Array
    (
        [value] => black
        [hex_colour] => #000000
    )

[1] => Array
    (
        [value] => blue
        [hex_colour] => #4e5f98
    )

[2] => Array
    (
        [value] => brown
        [hex_colour] => #a3775e
    )

ARRAY 2

[0] => Array
    (
        [value] => black
        [count] => 122
    )

[1] => Array
    (
        [value] => blue
        [count] => 33
    )

[2] => Array
    (
        [value] => brown
        [count] => 5
    )

My question is how do I add [count] to ARRAY 1 so the result would be:

New ARRAY

[0] => Array
    (
        [value] => black
        [hex_colour] => #000000
        [count] => 122
    )

[1] => Array
    (
        [value] => blue
        [hex_colour] => #4e5f98
        [count] => 33
    )

[2] => Array
    (
        [value] => brown
        [hex_colour] => #a3775e
        [count] => 5

    )

I apologise I haven't got examples of code that I've tried, but I have searched google using a number of different search terms but with no luck. Any help would be greatly received.

Upvotes: 1

Views: 106

Answers (4)

Aftab H.
Aftab H.

Reputation: 1537

You can try below code-

  $array1= array(
    'value' => 'black',
   'hex_colour' => '#000000'
);
$array2= array(
    'value' => 'black',
   'count' => '122'
);

$result = array_merge($array1, $array2);

print_r($result);

For reference http://php.net/manual/en/function.array-merge.php

Upvotes: 2

Jaimin Vyas
Jaimin Vyas

Reputation: 114

I think this is fullfillment your requirement.

$arrayName1[0] = array(
        'value' => "black",
        'hex_colour' => "#000000",
    );
    $arrayName1[1] = array(
        'value' => "blue",
        'hex_colour' => "#4e5f98",
    );
    $arrayName1[2] = array(
        'value' => "brown",
        'hex_colour' => "#a3775e",
    );

    $arrayName2[0] = array(
        'value' => "black",
        'count' => "122",
    );
    $arrayName2[1] = array(
        'value' => "blue",
        'count' => "33",
    );
    $arrayName2[2] = array(
        'value' => "brown",
        'count' => "5",
    );

    foreach ($arrayName1 as $key => $row1) {
        foreach ($arrayName2 as $key => $row2) {
            if($row1['value'] == $row2['value'] ){
                $row1['count'] = $row2['count'];
                $data[] = $row1;
                break;
            }
        }
    }

In $data you got same array as mentioned in your quetions. If you have any doubt, please comment below.

Upvotes: 2

Akhilendra
Akhilendra

Reputation: 1167

$data= Array(
    'value' => 'black',
   'hex_colour' => '#000000'
);
$data1= Array(
    'value' => 'black',
   'count' => '122'
);


print_r(array_merge($data1, $data));

Upvotes: 4

Deepak Kumar T P
Deepak Kumar T P

Reputation: 1076

$count_array=[];

foreach($array2 as $count)
{
    $count_array[$count['value']]=$count['count'];
}
$final=[];
foreach($array1 as $value)
{
    $final=[
             "value"=>$value['value'],
             "hex_colour"=>$value['hex_colour'],
             "count"=>$count_array[$value['value']]
        ];
}

Upvotes: 2

Related Questions