Como obter um subconjunto de array $ _POST com chaves que começam com um prefixo
Digamos que meu$_POST
variável se parece com:
<?php
Array
(
[user_ID] => 65
[action] => editpost
[originalaction] => editpost
[post_author] => 154
[empl_bd_dd] => 6
[empl_bd_mm] => 5
[empl_bd_yy] => 1987
[empl_gen] => 1
[empl_height] => 155
[empl_weight] => 61
[empl_arra] => 2
[save] => Update
[post_it] => 2
[empl_pay] => J77
[empl_cust] => Married
[empl_lang] => Array
(
[0] => EN
[1] => FR
)
[empl_rent] => 1
[name] => Jimmy Nathan
[empl_text] => Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sed interdum leo. Sed et elit quam, tempor placerat neque. Nullam sapien odio, egestas iaculis dictum ut, congue ullamcorper tellus.
[empl_sk_0] => 6
[empl_sk_1] => 7
[empl_sk_2] => 5
)
?>
Como você pode ver, prefixei todas as minhas variáveis de formulário comempl_
. Além de precisar especificar todos eles um por um, como faço para obter todas as minhas variáveis de formulário?$_POST
em uma matriz na maneira esperançosamente elegante de custo mínimo? Existe uma função de matriz PHP ou uma combinação deles que eu possa usar para isso?
Como emCSS
onde você pode selecionar todos os elementos com uma classe que começa comempl
usando[class*="empl_"]
, existe uma maneira de fazer isso com as chaves de matriz no PHP, por exemplo
$empl_post = $_POST['empl_*']
RESPOSTA EDITADA - imite a correção à resposta de @chris:$_POST
tem que ser o primeiro argumento paraarray_intersect_key
, por exemplo.:
$empl_POST = array_intersect_key($_POST, array_flip(preg_grep('/^empl_/', array_keys($_POST))));