|
|
1
5
|
|
|
2
3
我会得到10个随机索引,然后循环这些索引并得到节点。
$indexes = array();
for($i = 0; $i< 10; $i++){
$indexes[] = rand(0, $butters->users->length);
}
foreach($indexes as $index){
$user = $butters->users->item($index);
//do whatever with $user
}
在将索引添加到$indexes数组时,需要添加一个检查以确保您还没有获得该索引。 您可以将它放到一个命令中,但是您可能会得到重复的结果(不太可能,这取决于元素的数量,但可能…… for($i = 0; $i< 10; $i++){
$user = $butters->users->item(rand(0, $butters->users->length));
//do something with $user
}
|
|
|
3
2
将所有用户放入一个数组中,对其进行无序排列,并获取前十项:
也许你可以缩短第一步
|
|
|
4
0
创建一个随机对象(不知道特定于PHP的代码),然后调用它并与集合中的10/(total)进行比较。这意味着您在理论上应该选择10%,但是它可能会更少,并且您的退出代码会阻止它选择更多。 |
|
5
0
假设您使用的是simpleXML,则可以使用 XPath 获取所有用户。这将返回一个数组,从中应该是cake。 这样的事情应该可以做到:
不过,可能有人想在xpath上更正我的错误。从记忆中做 |
|
|
6
0
如果您对$users有某种奇怪的自实现数据结构,那么您可能希望使用reservor抽样。-- Efficiently selecting a set of random elements from a linked list |