2013-06-27 52 views
0

我有如下的循環:搜索元素是否存在於一個關聯數組

for($m = 0; $m < count($spcl_holiday_list_r); $m++) 
{ 

    $region_str = $spcl_holiday_list_r[$m]['region']; 

    $region_arr = explode(",",$region_str); 

    var_dump($region_arr) ; 

    if(in_array($hq_id , $region_arr)) 
    { 
     $special_holidays += $special_holidays; 
    } 
} 
} 
echo $special_holidays; 

var_dump($region_arr)顯示:

array 
    0 => string '2' (length=1) 
    1 => string '4' (length=1) 
    2 => string '5' (length=1) 
    3 => string '7' (length=1) 
    4 => string '10' (length=2) 
array 
    0 => string '3' (length=1) 
array 
    0 => string '10' (length=2) 

in_array($hq_id , $region_arr)總是返回FALSE!所以我想知道如何爲關聯數組實現函數in_array()?看看我的陣列輸出和要求,array_key_exists也不適合我。

+0

如果返回'FALSE'則是因爲'$ hq_id'不數組中存在。那麼'var_dump($ hq_id)''怎麼辦?另外,除非有理由使用後者(大多數情況下沒有),否則你應該比''foreach'更喜歡'。 – Jon

+0

對於這種情況,'hq_id'是'10'。所以我希望總數是2。 – AssamGuy

+0

'var_dump($ hq_id)' - 請不要求我。 – Jon

回答

0

我想你想要使用array_search()來代替。 當心返回值可能是一個布爾

if (array_search($hq_id , $region_arr) !== FALSE) 

PHP Manual array)search()

相關問題