按特定顺序输出数据的简单 XML


simple xml outputting data in specific order

我希望是一个简单的问题,但我在网上找不到任何有用的信息。

我有一个 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以不同的顺序输出,所以我不能简单地依赖按顺序输出它。

有没有办法我可以具体地拉出:

主场赔率平局赔率客场赔率?

提前致谢

理查

你可以这样做:

$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。Silmilarly for ['Draw'] & ['away'] .