我有一个如下构建的数组
foreach($details as $data)
{
$loans[] = [
'name' => 'Details',
[
'name' => 'id',
'value' => 1
],
[
'name' => 'Date',
'value' => '2015'
],
[
'name' => 'Purpose',
[
'name' => 'Code',
'value' => 123
]
],
getFees($data)
];
}
我需要使用fees
函数中的getFees
,并将这些值设置为与' name'相同的级别。 => '详细'上方。
private function getFees($data)
{
foreach($data as $item){
$values[] = [
'name' => 'type',
'value' => 'Interest'
];
}
return $values;
}
所以上面会产生以下结果:
Array
(
[name] => Details
[0] => Array
(
[name] => Details
[0] => Array
(
[name] => id
[value] => 1
)
[1] => Array
(
[name] => Date
[value] => 2015
)
[2] => Array
(
[name] => Purpose
[0] => Array
(
[name] => Code
[value] => 123
)
)
[3] => Array
(
[0] => Array
(
[name] => Type
[value] => Interest
)
)
)
)
但是我不希望那个[3]阵列更深层次,我只想要:
Array
(
[name] => Details
[0] => Array
(
[name] => Details
[0] => Array
(
[name] => id
[value] => 1
)
[1] => Array
(
[name] => Date
[value] => 2015
)
[2] => Array
(
[name] => Purpose
[0] => Array
(
[name] => Code
[value] => 123
)
[3] => Array
(
[name] => Type
[value] => Interest
)
)
)
显然我错过了一些东西 - 如果我在循环外尝试执行array_merge,那么fees
数组就在Details
数组之外。
如果getFees
函数只将数组设置为一个单独的元素,那么它工作正常,但我需要允许多个元素,因此$values[]
赋值。
如何按上述要求制作阵列?
答案 0 :(得分:1)
您目前编写它的方式,getFees()必须返回多个值才能获得所需的数组。由于函数只能返回一个函数,因此您需要重写代码。
我建议您从$ loans数组中取出getFees()调用,然后调用它,将结果与$ loans数组合并。
foreach($datum as $data){
$temp = array(
// your data
);
$temp = array_merge($temp, getFees($data));
$loans[] = $temp;
}