Php 删除关联数组的所有元素(如果它们在键中具有特定的字)

Php 删除关联数组的所有元素(如果它们在键中具有特定的字),php,arrays,associative-array,Php,Arrays,Associative Array,如果键中的子字符串为“TB1”,我想删除关联数组的所有元素 我的数组看起来像: $output= [ 'TB1_course' => 'required' 'TB1_session' => 'required' 'TB2_course' => 'required' ] $output =[ 'TB2_course' => 'required ] 我想删除TB1_课程和TB1_会话,以便我的最终数组如下所示: $o

如果键中的子字符串为“TB1”,我想删除关联数组的所有元素

我的数组看起来像:

$output= [
       'TB1_course' => 'required'
       'TB1_session' => 'required'
       'TB2_course' => 'required'
    ]
$output =[
   'TB2_course' => 'required
]
我想删除TB1_课程和TB1_会话,以便我的最终数组如下所示:

$output= [
       'TB1_course' => 'required'
       'TB1_session' => 'required'
       'TB2_course' => 'required'
    ]
$output =[
   'TB2_course' => 'required
]
有没有什么方法可以简单简洁地做到这一点

我最初的猜测是为每个循环使用一个:

foreach ($output as $key =>$value){
//remove
}

谢谢你的帮助

按键筛选数组:

$input = [
    'TB1_course' => 'required',
    'TB1_session' => 'required',
    'TB2_course' => 'required',
];

$filter = function ($key) {
    return substr($key, 0, 4) === 'TB2_';
};

$output = array_filter($input, $filter, ARRAY_FILTER_USE_KEY);

var_dump($output);
输出:

array(1) {
  'TB2_course' =>
  string(8) "required"
}

有关对筛选数组有用的
array\u filter
函数的文档,请参阅。

您应该尝试自己编写代码。如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。读一个好问题。请务必阅读。这可以取消设置($output['TB1_course']);未设置($output['TB1_session'])它工作得很好,谢谢!