我已经将XML路径存储到字符串中的项目,如下所示:response->items->item
。基于变量字符串访问php多维数组键
我需要做的是访问数组名为$ xml_array这样的:
$ xml_array [ '响应'] [ '项目'] [ '项目']
当我把它写在它的工作原理。事情是,我希望它在飞行中完成。
我用这个转换response->items->item
到['response']['items']['item']
:
$xml_path = 'response->items->item';
$explode_path = explode('->', $xml_path);
$correct_string = false;
foreach($explode_path as $path) {
$correct_string .= '[\''.$path.'\']';
}
的问题是,我不能这样做访问$xml_array
:$xml_array[$correct_string]
所以我结束了这一点:
$xml_tag = 'title';
$xml_path = 'response->items->item';
$correct_string = '$items = $xml2array';
$explode_path = explode('->', $xml_path);
foreach($explode_path as $path) {
$correct_string .= '[\''.$path.'\']';
}
$correct_string .= ';';
eval($correct_string);
foreach($items as $item) {
echo $item[$xml_tag].'<br />';
}
并通过$items
数组访问$xml_array
数组。有什么办法可以做到这一点,并避免使用eval()?
在此先感谢!
非常感谢您的支持!如果我想自动生成$ items变量而不是手动编写$ explode_path [0]等,该怎么办?毕竟我会从MySQL中检索这个。 – 2012-03-27 07:23:43
好了:'$ explode_path = explode(' - >',$ xml_path); $ count_explode = count($ explode_path); $ items = $ xml2array; for($ i = 0; $ i <$ count_explode; $ i ++){ \t $ items = $ items [$ explode_path [$ i]]; } – 2012-03-27 07:28:18