我有这个数组$array = [1, 2, 3, 4, 5];和这个功能function change($array) { foreach ($array as $key => $value) { $form[$key+5][$value-1] = $key-$value; } return $form;}change($array);在其中,我想重新排列数组的形式是,$form[$key+5][$value-1] = $key-$value;但我想让它由这样的参数定义function change($array, $form) { foreach ($array as $key => $value) { $form; } return $form;}$x = change($array, $arr[$key+5][$value-1] = $key-$value);$y = change($array, $arr[$key+5][$key+100] = $key+$value);如何才能做到这一点?
1 回答

Cats萌萌
TA贡献1805条经验 获得超9个赞
有人会抨击所有的弊端,eval但如果它不是用户提供的(不受信任的)数据,那么这有效:
function change($array, $form) {
foreach ($array as $key => $value) {
eval("\$result$form;");
}
return $result;
}
您需要使用字符串调用它,如下所示:
$x = change($array, '[$key+5][$value-1] = $key-$value');
$y = change($array, '[$key+5][$key+100] = $key+$value');
这将构建一个如下所示的字符串:$result[$key+5][$key+100] = $key+$value;并将其计算为 PHP 代码。
这将是更多的工作,但是您可以传入一些内容来解析并将其调整为如何通过键名/路径访问和操作多维数组?.
- 1 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消