2013-12-11 88 views
0

我有一個包含他們的姓名,ID,性別的朋友數據的數組。我想從數組中提取具有相反性別的數據。 例如 - 我的性別是「男」從數組中篩選數據 - php

返回數據 -

[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" 
} 

現在我想取隨機具有性別=女性的數據。我不知道如何做到這一點。任何幫助,將不勝感激。謝謝。

回答

2

好讓說,與所有的數據的陣列被命名爲$數據:

$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的總人數。

+0

超級兄弟!非常感謝。上帝祝福你 :) –