首先,我们可以使用PHP中的array_walk_recursive函数来遍历多维数组,并使用回调函数来处理每个元素。在回调函数中,我们可以将每个元素的键路径作为单个键存储到一个新数组中。下面是一个示例代码:
function flatten_array($array) {
$result = array();
array_walk_recursive($array, function($value, $key) use (&$result) {
$result[$key] = $value;
});
return $result;
}
// 示例数组
$my_array = array(
"foo" => "bar",
"baz" => array(
"qux" => "quux",
"quux" => array(
"corge" => "grault"
)
)
);
// 展开数组
$flat_array = flatten_array($my_array);
// 打印结果
print_r($flat_array);
Array
(
[foo] => bar
[baz.qux] => quux
[baz.quux.corge] => grault
)
可以看到,原始数组中的每个键访问路径都被作为单个键存储在了新数组中。这种方法可以方便地将多维数组展开并按照特定的格式存储,便于后续处理和使用。
注意:创建一个匹配函数,unflatten它将反转该过程(例如,如果密钥