Reputation: 73
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
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
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
Reputation: 1167
$data= Array(
'value' => 'black',
'hex_colour' => '#000000'
);
$data1= Array(
'value' => 'black',
'count' => '122'
);
print_r(array_merge($data1, $data));
Upvotes: 4
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