这是一个数组:
array('csv'=>
array('path'=>'/file.csv',
'lines'=>array('line1',
'line2',
'line3'
)
)
)
如您所见,阵列深入三层。
这是两个字符串:
1. 'csv/path'
2. 'csv/lines/0
使用/
作为分隔符,字符串1将获得'/file.csv'
,字符串2将获得'line1'
。我一直在考虑使用递归函数,但我还不知道如何去做。
我的想法是,我不知道我正在访问哪个数组密钥。我正在创建一个通用函数,它将字符串作为输入并返回数组中的相应值。
答案 0 :(得分:0)
只需遍历给定字符串中的每个键,将新数组设置为从给定数组中的found元素中拉出。您应该添加错误处理。
<?php
$array = array('csv'=>
array('path'=>'/file.csv',
'lines'=>array('line1',
'line2',
'line3'
)
)
);
echo extractData($array, 'csv/path'); // echoes /file.csv
echo extractData($array, 'csv/lines/0'); // echoes line1
function extractData($array, $string){
$keys = explode('/', $string);
$data = $array;
foreach ($keys as $key){
$data = $data[$key];
}
return $data;
}