2013-12-11 4 views
0

이름, 성별, 성별을 포함한 친구 데이터가있는 배열이 있습니다. 나는 성별이 다른 배열에서 데이터를 추출하려고합니다. 예를 들어 - 배열의 필터 데이터 -

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

지금 내가 무작위로 성 = 여성이 데이터를 가져 오려는 - 내 성별 "남성"

반환 된 데이터입니다. 어떻게 할 수 있는지 전혀 모르겠다. 어떤 도움을 주시면 감사하겠습니다. 고맙습니다.

$res = array(); 
foreach($data as $person) { 
    if(strcasecmp($person['gender'], 'female') == 0) 
      $res[] = $person; 
} 

는 이제 새로운 배열은 모든 여성을 포함 $ 고해상도라는이 : 좋아

답변

2

모든 데이터와 배열이 $ 데이터 이름은 말할 수 있습니다.

그럼에도 불구하고 데이터베이스에서 SQL을 가져 오는 동안 원시 데이터를 필터링 하겠지만 이것은 동일한 노력이어야하며 오랜 시간보기에서 더 많은 성능을 제공해야합니다.

$number_of_persons = count($res); 
$random_female = $res[rand(0, $number_of_persons-1)]; 

왜 -1 :

지금 무작위로 여성 중 하나를 설정하고 싶은 경우

는 이런 일을합니까?

배열은 인덱스 0에서 시작하므로 전체 인원에 -1이 필요합니다.

+0

형님! 정말 고맙습니다. 신의 축복이있어. :) –