我有一个包含好友数据的数组,包括他们的姓名、id和性别。我想从具有相反性别的数组中提取数据。例如-我的性别是"男性"
返回的数据-
[118]=> object(stdClass)#121 (3) {
["name"]=> string(9) "Rawa Su"
["gender"]=> string(4) "male"
["id"]=> string(15) "1000019100"
}
[119]=> object(stdClass)#122 (3) {
["name"]=> string(11) "Anil Gaj"
["gender"]=> string(4) "male"
["id"]=> string(15) "1000034656"
}
[120]=> object(stdClass)#123 (3) {
["name"]=> string(13) "Ankur Tri"
["gender"]=> string(4) "male"
["id"]=> string(15) "1000022271"
}
[121]=> object(stdClass)#124 (3) {
["name"]=> string(13) "Chuck Ell"
["gender"]=> string(4) "male"
["id"]=> string(15) "10000185038"
}
[122]=> object(stdClass)#125 (3) {
["name"]=> string(15) "Madhuri Tat"
["gender"]=> string(6) "female"
["id"]=> string(15) "1000880932"
}
现在我想随机获取性别=女性的数据。我不知道该怎么做。如有任何帮助,我们将不胜感激。非常感谢。
好吧,假设您的数组和所有数据都命名为$data:
$res = array();
foreach($data as $person) {
if(strcasecmp($person['gender'], 'female') == 0)
$res[] = $person;
}
现在你有了一个名为$res的新数组,其中包含所有雌性。
尽管如此,我还是会在从数据库中提取sql的过程中过滤原始数据,这应该是同样的努力,并从长远来看提供更多的性能。
如果你现在想随机拥有一只雌性,可以这样做:
$number_of_persons = count($res);
$random_female = $res[rand(0, $number_of_persons-1)];
为什么是-1?
数组从索引0开始,因此总人数需要-1。