我已經將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