Reputation: 99
I've two arrays
118 => array:7 [
"date" => "19.10.2016"
"time1" => "dfg"
"purpose1" => "dfg"
"chair1" => "dfg"
"time2" => "dfg"
"purpose2" => "dfg5"
"chair2" => "5345"
]
123 => array:7 [
"date" => "20.10.2016"
"time1" => "gdf"
"purpose1" => "gdfg"
"chair1" => "gdf"
"time2" => "gdfg"
"purpose2" => "gdf"
"chair2" => "534534"
]
124 => array:7 [
"date" => "20.10.2016"
"time1" => "gdf"
"purpose1" => "gdfg"
"chair1" => "gdf"
"time2" => "gdfg"
"purpose2" => "gdf"
"chair2" => "534534"
]
and
0 => {#231
+"label_id": "D101102E"
+"id": 118
}
1 => {#232
+"label_id": "D1011100"
+"id": 123
}
2 => {#233
+"label_id": "D1011100"
+"id": 124
}
Where id
is key in first array, and value in second array. I want add label_id
to first array as value in the same id
as key. I already try use array_fill_keys and array_push but it's not the point. Thank you
Upvotes: 1
Views: 62
Reputation: 40861
Iterate through the first array, then in a nested loop, iterate through the second array comparing the outer key to the inner id. If you have a match, then append the value to the outer array and continue to the next item.
<?php
$a = [
118 => [
"date" => "19.10.2016",
"time1" => "dfg",
"purpose1" => "dfg",
"chair1" => "dfg",
"time2" => "dfg",
"purpose2" => "dfg5",
"chair2" => "5345",
],
123 => [
"date" => "20.10.2016",
"time1" => "gdf",
"purpose1" => "gdfg",
"chair1" => "gdf",
"time2" => "gdfg",
"purpose2" => "gdf",
"chair2" => "534534",
],
124 => [
"date" => "20.10.2016",
"time1" => "gdf",
"purpose1" => "gdfg",
"chair1" => "gdf",
"time2" => "gdfg",
"purpose2" => "gdf",
"chair2" => "534534",
],
];
$b = [
0 => [
"label_id" => "D101102E",
"id" => 118,
],
1 => [
"label_id" => "D1011100",
"id" => 123,
],
2 => [
"label_id" => "D1011100",
"id" => 124,
],
];
foreach($a as $key => $value){
foreach($b as $k => $v){
if($key === $v['id']){
$a[$key]['label_id'] = $k;
continue;
}
}
}
print_r($a);
Array ( [118] => Array ( [date] => 19.10.2016 [time1] => dfg [purpose1] => dfg [chair1] => dfg [time2] => dfg [purpose2] => dfg5 [chair2] => 5345 [label_id] => 0 ) [123] => Array ( [date] => 20.10.2016 [time1] => gdf [purpose1] => gdfg [chair1] => gdf [time2] => gdfg [purpose2] => gdf [chair2] => 534534 [label_id] => 1 ) [124] => Array ( [date] => 20.10.2016 [time1] => gdf [purpose1] => gdfg [chair1] => gdf [time2] => gdfg [purpose2] => gdf [chair2] => 534534 [label_id] => 2 ) )
Upvotes: 1