Q:

$_POST и массив

Вот форма:
<form action="/test">
    <input type="text" name="text1">
    <input type="text" name="text2">
    <input type="text" name="text3">
    <input type="submit" name="do_send" value="Send">
</form>

Итак, если я вар дампну $_POST, я получу массив вида:
array(3) {
  ["text1"] => string(5) "Text1"
  ["text2"] => string(5) "Text2"
  ["text3"] => string(5) "Text3"
}

У меня есть массив:
$arr = array('text1','text3');

Как мне вытянуть ключи таким образом, чтобы из $_POST отфильтровался ключ 'text2' ибо он не нужен? 
То есть в форме 3 инпута а после валидации у меня получилось всего два ключа? 
array(2) {
  ["text1"] => string(5) "Text1"
  ["text3"] => string(5) "Text3"
}

Я хочу упростить себе жизнь и сделать маленькую валидацию, а не писать тонны мусорного кода для проверки. 
Поможете? 
Дополняю:
$_POST - это и есть $_POST['text1'] и тд...
public function getEditMain() {
    $smarty = $this->loadsmarty();
    $this->ValidAdmin();
    $data = $_POST;

    $mtype = current(R::getAssoc('SELECT type FROM `mainconfigs`'));
    $mtitle = current(R::getAssoc('SELECT title FROM `mainconfigs`'));
    $mtemplate = current(R::getAssoc('SELECT template FROM `mainconfigs`'));
    $metarobots = current(R::getAssoc('SELECT meta_robots FROM `mainconfigs`'));
    $metatitle = current(R::getAssoc('SELECT meta_og_title FROM `mainconfigs`'));
    $metadescr = current(R::getAssoc('SELECT meta_og_descr FROM `mainconfigs`'));
    $metakeys = current(R::getAssoc('SELECT meta_og_keys FROM `mainconfigs`'));
    $metaurl = current(R::getAssoc('SELECT meta_og_url FROM `mainconfigs`'));
    $metaimg = current(R::getAssoc('SELECT meta_og_img FROM `mainconfigs`'));
    $metatype = current(R::getAssoc('SELECT meta_og_type FROM `mainconfigs`'));

    $smarty->assign('title',$mtitle);
    $smarty->assign('meta_og_title',$mtitle);
    $smarty->assign('template',$mtemplate);
    $smarty->assign('meta_og_title',$metatitle);
    $smarty->assign('meta_og_descr',$metadescr);
    $smarty->assign('meta_og_keys',$metakeys);
    $smarty->assign('meta_og_url',$metaurl);
    $smarty->assign('meta_og_img',$metaimg);
    $smarty->assign('meta_og_type',$metatype);

    if ($mtype) {
        $smarty->assign('editmainstatus',$mtype);
    }
    if ($metarobots == 'index,follow') {
        $smarty->assign('metaindex1','checked="checked"');
    } else if  ($metarobots == 'index,nofollow') {
        $smarty->assign('metaindex2','checked="checked"');
    } else if  ($metarobots == 'noindex,nofollow') {
        $smarty->assign('metaindex3','checked="checked"');
    }

    if (isset($data['main_config'])) {
        $arrs = array('title','meta_og_title','meta_og_descr','meta_og_keys','meta_og_url','meta_og_img','meta_og_type');
        var_dump(array_intersect($data, array_flip($arrs))); // У меня помимо полей есть ещё много мусорных элементов, как мне их отфильтровать?  array(1) { ["radio"]=> string(1) "1" }
        exit;
    }

    $smarty->assign('module','admin/mainedit.tpl');
    $smarty->assign('configsArray',$table);
    return $smarty->display('admin/html.tpl');
}

A:

Моя версия:
$a = array('text1' => 11, 'text2' => 22, 'text3' => 33);
$b = array('text1', 'text2');

var_dump(array_intersect_key($a, array_flip($b)));

