xAPI-vle/moodle-logstore_xapi

View on GitHub
src/transformer/utils/deep_merge_arrays.php

Summary

Maintainability
A
25 mins
Test Coverage
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
 
/**
* Utility for deep-merging arrays
*
* @package logstore_xapi
* @copyright Milt Reder <milt@yetanalytics.com>
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
 
namespace src\transformer\utils;
 
/**
* Merge two arrays including deep assignments.
*
* @param array $arr1 The first array
* @param array $arr2 The second array
* @return array
*/
Function `deep_merge_arrays` has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
function deep_merge_arrays($arr1, $arr2) {
// Merge the second array into the first one
foreach ($arr2 as $key => $value) {
// If the key exists in the first array and both values are arrays, recurse
if (array_key_exists($key, $arr1) && is_array($arr1[$key]) && is_array($value)) {
$arr1[$key] = deep_merge_arrays($arr1[$key], $value);
} else {
// Otherwise, use the second array's value (overwrites or sets new key)
$arr1[$key] = $value;
}
}
return $arr1;
}