我有一个包含朋友数据的数组,包括他们的姓名,身份,性别。我想从具有相反性别的数组中提取数据。 例如 - 我的性别是“男性”
返回数据 -
[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"
}
现在我想随机获取性别=女性的数据。我不知道如何做到这一点。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:2)
好吧,假设您的所有数据数组都名为$ 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。