我有這個數組$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 關注
- 133 瀏覽
添加回答
舉報
0/150
提交
取消