2017-06-19 60 views
-1

如果关键字中的关键字的子字符串为'TB1',我想移除关联数组的所有元素。删除关联数组中所有元素(如果他们在关键字中有特定字)

我的数组是这样的:

$output= [ 
     'TB1_course' => 'required' 
     'TB1_session' => 'required' 
     'TB2_course' => 'required' 
    ] 

我想删除TB1_course和TB1_session,让我最后一个数组的样子:

$output =[ 
    'TB2_course' => 'required 
] 

有没有什么方式去在做这个一个简单的简洁时尚?

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

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

谢谢所有帮助!

+0

您应该尝试**自己编写代码**。在[**做更多的研究**之后](https://meta.stackoverflow.com/q/261592/1011527)如果你有问题**发布你已经尝试了**的**明确的解释不工作**并提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。阅读[如何问](http://stackoverflow.com/help/how-to-ask)一个很好的问题。请务必[参观](http://stackoverflow.com/tour)并阅读[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

+0

这是好的'unset($ output ['TB1_course']); unset($ output ['TB1_session']);' –

回答

1

滤波器阵列由键:

$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_filter功能是滤除阵列有用的文档查看http://php.net/array_filter

+0

它完美的工作,谢谢! – Muhammad

相关问题