2012-08-30 30 views
1

我想知道對數值元素值設置爲True的最有效方法。在PHP中計算具有真實值的多維數組元素

這是我的嘗試,但代碼有點長。我想知道是否已經有一個內置函數,或者可以以更聰明的方式完成。在這種情況下,我想知道$ 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 

也許它是好的爲您的需求得到==,假設你的數組將永遠伴隨着y真/假值。

相關問題