的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> >=9
,shuffle
项目并打印<text>
怎么办?
$xml = simplexml_load_file('test.xml');
foreach ($xml->item as $key=>$data){
if(($data->num)>=9){
...
}
}
需要像:
text1 text3 text5
或text1 text5 text3
或text3 text1 text5
... // text1 text3 text5不小于9,然后打印它们并使其位置为radom
答案 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);