* [refac] refactor the arrayAdd function to improve robustness.

This commit is contained in:
liugang
2025-01-09 13:03:04 +08:00
committed by 朱金勇
parent 65a785990b
commit ebe74628f5
+10 -8
View File
@@ -881,21 +881,23 @@ function addPrefixToField(&$data, $fieldName, $suffix = '. ')
* 实现数组+功能。
* Implement multi array addition.
*
* @param ...$args
* @param array ...$args
* @return array
*/
function arrayAdd(...$args): array
{
$argArr = func_get_args();
if(empty($argArr)) return array();
$args = array_filter($args, function($arg){return is_array($arg);});
$result = $argArr[0];
unset($argArr[0]);
foreach ($argArr as $argIndex => $argData)
$count = count($args);
if($count == 0) return [];
if($count == 1) return reset($args);
$result = array_shift($args);
foreach($args as $arg)
{
foreach($argArr[$argIndex] as $key=>$value)
foreach($arg as $key => $value)
{
if (!isset($result[$key])) $result[$key] = $value;
if(!isset($result[$key])) $result[$key] = $value;
}
}
return $result;