刘博平的博客

一个软件工程师

PHP给多维数组赋值避免notice警告

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 /**
* 给多维数组复制,避免notice警告
* @param $data array
* @param $key_arr array
* @param $value mixed
* @return void
*/
public static function array_multidimensional_set(&$data, $key_arr, $value)
{
$cur_arr = null;
foreach ($key_arr as $key) {
if ($cur_arr === null) {
if (!isset($data[$key])) {
$data[$key] = array();
}
$cur_arr =& $data[$key];
} else {
if (!isset($cur_arr[$key])) {
$cur_arr[$key] = array();
}
$cur_arr = &$cur_arr[$key];
}
}
$cur_arr = $value;
}