Итерация по массиву, поиск ключей, которые соответствуют значениям другого массива - PullRequest
0 голосов
/ 14 мая 2011

Это, вероятно, простой вопрос ...

У меня есть многомерный массив, называемый $ form.Мне нужно перебрать массив, найти конкретные ключи, которые соответствуют значениям другого массива, а затем выполнить действие с этими ключами.

$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 может быть довольно большой, и я боюсь, что загрузка страницы может стать довольно медленной.

1 Ответ

4 голосов
/ 14 мая 2011

Посмотрите на функцию 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) {
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...