我有以下数组:
Array
(
[0] => BCD
[1] => ACE
[2] => AHP
[3] => BGH
[4] => ART
[5] => COT
[6] => ARG
[7] => BGT
)
我需要匹配第一个字母在以下数组中的所有元素:
Array
(
[0] => B
[1] => A
)
得到:
Array
(
[0] => ACE
[1] => AHP
[2] => BGH
[3] => ART
[4] => ARG
[5] => BGT
)
没有循环遍历整个数组,我该如何在PHP中执行此操作?是否有内置的PHP数组函数或其组合?顺序对结果数组的键和值都无关紧要。非常感谢。
答案 0 :(得分:2)
您可以使用array_filter进行以下操作:
$array = array('CBD', 'NHN', 'NHP', 'WHC', 'NND', 'CQN', 'WST', 'WVT');
$whitelist = array('W', 'N');
$filtered = array_filter($array, function($val) use ($whitelist) {
// check if first letter is in the whitelist array
if (in_array($val{0}, $whitelist)) {
return $val;
}
return false;
});
输出:
Array
(
[1] => NHN
[2] => NHP
[3] => WHC
[4] => NND
[6] => WST
[7] => WVT
)