当使用foreach循环时,它没有问题,但我不知道如何在函数内实现它。
我正在尝试编写的功能。
function fgf($array, $section_k, $section_n) {
foreach($array as &$k_687d) {
$k_687d['section'] = section_k;
$k_687d['section_name'] = $section_n;
$k_687d['section_ssn'] = 'df6s';
}
return $array;
}
数组示例。
$array = array(
'work'=>array(
'default' => 1,
'opt_type' => 'input',
),
'something_else' => array(
'default' => 1,
'opt_type' => 'list',
),
)
拨打
fgf($array, 'work_stuff', 'Work Stuff');
答案 0 :(得分:1)
我认为你想要像
这样的东西function fgf($array, $section_k, $section_n)
{
$newArray = [];
for($i = 0, $count = count($array); $i <= $count; $i++) {
$newArray[$i]['section'] = $section_k;
$newArray[$i]['section_name'] = $section_n;
$newArray[$i]['section_ssn'] = 'df6s';
}
return $newArray;
}
然后你可以调用它将结果数组赋值给变量
$newArray = fgf($array, 'work_stuff', 'Work Stuff');
答案 1 :(得分:0)
您错过了$
:
$k_687d['section'] = $section_k;
^
如果您希望修改原始数组,请将该数组作为参考传递,否则将您的调用函数指定给变量。
答案 2 :(得分:0)
您没有使用返回值,因此$array
变量保持不变。
您应该将函数的返回值赋给变量,例如:
$array = fgf($array, 'work_stuff', 'Work Stuff');
或使用“按参考传递”:
function fgf(&$array, $section_k, $section_n)
(注意$array
参数前的&符号)。在这种情况下,您可以从函数中删除return语句。
请参阅:http://php.net/manual/en/language.references.pass.php