1

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.

2
  • 1
    array_merge () ..? Commented Dec 26, 2017 at 12:02
  • Are they always in the same order? Is [0] in array1 == [0] in array2? Commented Dec 26, 2017 at 12:04

4 Answers 4

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


print_r(array_merge($data1, $data));
Sign up to request clarification or add additional context in comments.

Comments

2

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.

1 Comment

Hi Jaimin, thank you it works as does Deepak's above.
2
$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']]
        ];
}

Comments

2

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.