2012-01-30 27 views
0

我有我希望的是一個簡單的問題,但我無法找到這個在線的任何有用的信息。簡單的xml以特定的順序輸出數據

我有一個XML文件:

<market id="27719037" name="Wolves v Leeds"> 
<participant name="home" id="121081062" odds="7/2"/> 
<participant name="Draw" id="121081062" odds="7/2"/> 
<participant name="away" id="121081062" odds="7/2"/> 
</market> 

<market id="27719037" name="Liverpool v Fulham"> 
<participant name="Draw" id="121081062" odds="7/2"/> 
<participant name="home" id="121081062" odds="7/2"/> 
<participant name="away" id="121081062" odds="7/2"/> 
</market> 

因爲XML被以不同的順序爲每個市場的遊戲,我不能簡單地依靠爲了輸出它輸出。

有沒有一種方法可以讓我specificall拔出:

主場賠率 平局賠率 客場勝算?

在此先感謝

理查德

回答

0

你可以這樣做:

$xml= simplexml_load_file('temp.xml'); 

$xmlarr = array(); 

$i=0; 
foreach($xml as $market) { 
foreach($market as $participant){ 
    $name = (string)$participant['name']; 
    //to store in pairs of 'home odds' 'draw odds' 'away odds' 
    $xmlarr[$i][$name] = (string)$participant['odds']; 

} 
    ++$i;  
    } 

現在你有$xmlarr陣列,它的結構是這樣的:

array(2) { 
    [0]=> 
    array(3) { 
    ["home"]=> 
    string(3) "7/2" 
    ["Draw"]=> 
    string(3) "7/2" 
    ["away"]=> 
    string(3) "7/2" 
    } 
    [1]=> 
    array(3) { 
    ["Draw"]=> 
    string(3) "7/2" 
    ["home"]=> 
    string(3) "7/2" 
    ["away"]=> 
    string(3) "7/2" 
    } 
} 

您可以訪問他們按照你想要的順序如下:

foreach ($xmlarr as $element) { 
echo "home : ".$element ['home']."<br>"; 
echo "Draw : ".$element ['Draw']."<br>"; 
echo "away : ".$element ['away']."<br>"; 
} 

O/P

home : 7/2 
Draw : 7/2 
away : 7/2 
home : 7/2 
Draw : 7/2 
away : 7/2 

當您訪問['home']你會得到odd有關吧。同樣爲['Draw'] & ['away']