代码版本:PHP 8.0+
/**
* 数组设值:以'键名.键名'的方式进行数组设值
* @param array $array 数组
* @param string $name 设置键名
* @param mixed $value 设置的值
* @return mixed 设置的值
*/
function arr_dot_set(array &$array, string $name, mixed $value = ''): mixed
{
$keys = explode('.', $name);
$temp = &$array;
foreach ($keys as $key) {
$temp[$key] ??= [];
$temp = &$temp[$key];
}
return $temp = $value;
}
调用示例:
$array = ['test' => [2 => [3, 4, 5]]]; echo arr_dot_set($array, 'test.2.2', 6); //输出6