鍍金池/ 問答/PHP/ php數(shù)組操作的一個算法

php數(shù)組操作的一個算法

<?php
$data = [
    'a' => [
        'b' => 1,
        'c' => 2,
        'd' => [
            'e' => 3,
            'f' => 4
        ]
    ]
];
$temp1 = change($data, 'a.b');
$temp2 = change($data, 'a.d.f');
?>
change函數(shù)的作用是把相應鍵的數(shù)字加上100
比如
change($data, 'a.d.f')
相當于
$data['a']['d']['f'] = $data['a']['d']['f'] + 100;
要求
1.不能使用地址引用
2.change的第2個參數(shù)是任意配置的,比如"a.b.c.d.e.f.g.h.i.j.k",寫出的change應該都能適應
3.不必做鍵不存在的容錯處理
4.數(shù)組的結(jié)構(gòu)不變的,只是相應的鍵的值改了
回答
編輯回答
別硬撐
function change($data, $path) {
    return array_reduce(explode('.', $path), function($result, $item) {
        return $result[$item];
    }, $data) + 100;
}
2017年10月8日 04:58