The three lines repeat themselves twice. How could this be done better?
$selectedComponentsNewTmp = $this->getNewSelectedComponents();
$selectedComponentsNew = [];
foreach ($selectedComponentsNewTmp as $component) {
$selectedComponentsNew[$component['componentGroup']['Count_0']]['name'] = $component['componentGroup']['name'];
$selectedComponentsNew[$component['componentGroup']['Count_0']]['value'] = $component['coverage']['value'] ?? '';
$selectedComponentsNew[$component['componentGroup']['Count_0']]['txt'] = $component['coverage']['txt'] ?? '';
}
$selectedComponentsOldTmp = $this->getOldSelectedComponents();
$selectedComponentsOld = [];
foreach ($selectedComponentsOldTmp as $component) {
$selectedComponentsOld[$component['componentGroup']['Count_0']]['name'] = $component['componentGroup']['name'];
$selectedComponentsOld[$component['componentGroup']['Count_0']]['value'] = $component['coverage']['value'] ?? '';
$selectedComponentsOld[$component['componentGroup']['Count_0']]['txt'] = $component['coverage']['txt'] ?? '';
}Advertisement
Answer
You could create and use a function:
function
function myFunction($selectedComponentsNew, $component) {
$selectedComponentsNew[$component['componentGroup']['Count_0']]['name'] = $component['componentGroup']['name'];
$selectedComponentsNew[$component['componentGroup']['Count_0']]['value'] = $component['coverage']['value'] ?? '';
$selectedComponentsNew[$component['componentGroup']['Count_0']]['txt'] = $component['coverage']['txt'] ?? '';
}
usage
$selectedComponentsNewTmp = $this->getNewSelectedComponents();
$selectedComponentsNew = [];
foreach ($selectedComponentsNewTmp as $component) {
myFunction($selectedComponentsNew, $component);
}
$selectedComponentsOldTmp = $this->getOldSelectedComponents();
$selectedComponentsOld = [];
foreach ($selectedComponentsOldTmp as $component) {
myFunction($selectedComponentsOld, $component);
}