php解析xml make result shuffle

时间:2011-07-29 13:59:24

标签: php shuffle

的test.xml

<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
  <id>1</id>
  <num>10</num>
  <text>text1</text>
</item>
<item>
  <id>2</id>
  <num>8</num>
  <text>text2</text>
</item>
<item>
  <id>3</id>
  <num>17</num>
  <text>text3</text>
</item>
<item>
  <id>4</id>
  <num>5</num>
  <text>text4</text>
</item>
<item>
  <id>5</id>
  <num>9</num>
  <text>text5</text>
</item>
</items>

如果<num> >=9shuffle项目并打印<text>怎么办?

$xml = simplexml_load_file('test.xml');
foreach ($xml->item as $key=>$data){
    if(($data->num)>=9){
        ... 
    }
}

需要像:

text1 text3 text5text1 text5 text3text3 text1 text5 ... // text1 text3 text5不小于9,然后打印它们并使其位置为radom

1 个答案:

答案 0 :(得分:3)

当它们通过时,将它们添加到(关联)数组中。

在foreach循环之后,shuffle($array)将随机播放它们,然后像​​往常一样打印它们(echo $array[0].$array[1].$array[2])。

这是你在找什么?

编辑:

$passedArray = array();

$xml = simplexml_load_file('test.xml');
foreach ($xml->item as $key=>$data){
    if(($data->num)>=9){
        $passedArray[] = $data->text;
    }
}

shuffle($passedArray);

然后:

foreach ($passedArray as $value) {
    echo $value.' ';
}

这会留下一个尾随空格。这样更好:

$string = '';

foreach ($passedArray as $value) {
    $string += $value.' ';
}

echo substr($string, 0, strlen($string)-1);