2012-08-30 2 views
1

값이 True로 설정된 배열 요소를 계산하는 가장 효율적인 방법을 알고 싶습니다.PHP에서 True Value를 가진 다차원 배열 요소 수를 계산하십시오.

내 시도이지만 코드가 길어집니다. 이미 내장 함수가 있거나 더 똑똑한 방법으로 구현할 수 있는지 궁금합니다. 이 경우, $ arr [ 'key'] [uniquekeyname] [ 'check']에있는 요소의 수를 알고 싶습니다.

$arr = array(); 
$arr['keys'] = array(
    'a' => array('check' => true, 'otherinfo' => 'some data'), 
    'b' => array('check' => false, 'otherinfo' => 'some data'), 
    'c' => array('check' => false, 'otherinfo' => 'some data'), 
    'd' => array('check' => true, 'otherinfo' => 'some data'), 
); 

$numChecked = 0; 
foreach($arr['keys'] as $key) { 
    if ($key['check']) 
     $numChecked++;   
} 

echo $numChecked; 
+0

이 작업은 map-reduce를 사용하여 수행 할 수도 있지만이 작업은 map-reduce 작동 방식을 이해하는 데 더 직관적입니다. php의'array_map()'과'array_reduce()'함수를보십시오. –

답변

0

복잡성이 O(n), 그래서 그것을 통해 반복하는 것은 잘입니다 것입니다.

나는 지금 또는 ==와 같이 어쩌면 당신이 바로 계산됩니다 다른 값으로 설정 필드 수표를 가지고 있기 때문에, true에 배열의 요소를 비교하기 위해 트리플 동등 연산자 ===을 사용하도록주의 .

'b' => array('check' => 150, 'otherinfo' => 'some data'), 

윌 출력 :

3 

반면 :

$numChecked = 0; 
foreach($arr['keys'] as $key) { 
    if ($key['check'] === true) 
     $numChecked++;   
} 

echo $numChecked; 

당신에게

2 

를 얻을 것이다 필요가 배열을 가정, ==을받을 수 있도록 아마 괜찮습니다 항상 onl을 수행합니다. y 참/거짓 값.

관련 문제