从数组php中筛选数据


filter data from an array - php

我有一个包含好友数据的数组,包括他们的姓名、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。