从函数返回特定的数组形式

我有这个数组


$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);

如何才能做到这一点?


呼啦一阵风
浏览 118回答 1
1回答

Cats萌萌

有人会抨击所有的弊端,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 代码。这将是更多的工作,但是您可以传入一些内容来解析并将其调整为如何通过键名/路径访问和操作多维数组?.
打开App,查看更多内容
随时随地看视频慕课网APP