2011-05-14 82 views
0

這可能是一個簡單的問題的值是鑰匙......迭代通過一個數組,尋找匹配另一個陣列

我有一個名爲$形式多維數組。我需要迭代數組,查找與另一個數組值相匹配的特定鍵,然後在這些鍵中執行一個操作。

$a = 'theme_select'; 
$b = 'timezone'; 
$c = 'contact'; 
$d = 'something_else'; 

$arr = array(); 
$arr = ($a, $b, $c, $d); 

foreach($form as $form_key=>$form_val){ 

    foreach($arr as $include) { 

     if ($form_key == $include) { 

      //some action 

     } 
    } 
} 

這是實現此目的的最佳方法嗎?我問的原因是$ form可能很大,我擔心頁面加載會變得很慢。

+2

你可能會感興趣的。['in_array()'PHP函數(http://php.net/manual/en/function.in-array .PHP)。 – 2011-05-14 17:23:02

回答

4

看一看在array_intersect_key()功能

$a = 'theme_select'; 
$b = 'timezone'; 
$c = 'contact'; 
$d = 'something_else'; 

$arr = array_fill_keys(array($a, $b, $c, $d),1); 

$matchingKeys = array_intersect_keys($form,$arr); 
foreach($matchingKeys as $key => $value) { 
    ... 
} 
+1

謝謝。這就是我一直在尋找的! – Tivie 2011-05-14 17:36:03

相關問題