Phi*_*une 5 php function multidimensional-array
我正在尝试查找(或创建)一个函数。我有一个多维数组:
$data_arr = [
"a" => [
"aa" => "abfoo",
"ab" => [
"aba" => "abafoo",
"abb" => "abbfoo",
"abc" => "abcfoo"
],
"ac" => "acfoo"
],
"b" => [
"ba" => "bafoo",
"bb" => "bbfoo",
"bc" => "bcfoo"
],
"c" => [
"ca" => "cafoo",
"cb" => "cbfoo",
"cc" => "ccfoo"
]
];
Run Code Online (Sandbox Code Playgroud)
我想使用单维数组访问一个值,如下所示:
$data_arr_call = ["a", "ab", "abc"];
someFunction( $data_arr, $data_arr_call ); // should return "abcfoo"
Run Code Online (Sandbox Code Playgroud)
这似乎可能已经有这种类型的功能,我只是不知道要搜索什么。
尝试这个
function flatCall($data_arr, $data_arr_call){
$current = $data_arr;
foreach($data_arr_call as $key){
$current = $current[$key];
}
return $current;
}
Run Code Online (Sandbox Code Playgroud)
该$current变量被反复地建起来了,就像这样:
flatCall($data_arr, ['a','ab','abc']);
1st iteration: $current = $data_arr['a'];
2nd iteration: $current = $data_arr['a']['ab'];
3rd iteration: $current = $data_arr['a']['ab']['abc'];
Run Code Online (Sandbox Code Playgroud)
您还可以if ( isset($current) ) ...在每次迭代中提供错误检查。