Как получить подмножество массива $ _POST с ключами, начинающимися с префикса
Скажем, мой$_POST
переменная выглядит так:
<?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
)
?>
Как видите, все мои переменные формы имеют префиксempl_
, Если не считать необходимости указывать их все по одному, как мне получить все переменные формы из$_POST
в массив наименее затратным, надеюсь, элегантным способом? Есть ли функция массива PHP или их комбинация, которую я могу использовать для этого?
Как вCSS
где вы можете выбрать все элементы с классом, который начинается сempl
с помощью[class*="empl_"]
Есть ли способ сделать это с помощью ключей массива в PHP, например,
$empl_post = $_POST['empl_*']
EDITED ANSWER - внести исправление в ответ @chris:$_POST
должен быть первым аргументомarray_intersect_key
Например:
$empl_POST = array_intersect_key($_POST, array_flip(preg_grep('/^empl_/', array_keys($_POST))));