我有这个数组
array (size=7)
0 => string 'Â bs-0468R(20UG)' (length=16)
1 => string 'Â bs-1338R(1ML)' (length=15)
2 => string 'Â bs-1557G(NO BSA)' (length=18)
3 => string 'Â bs-3295R(NO BSA)' (length=18)
4 => string '" bs-0730R' (length=10)
5 => string '" bs-3889R' (length=10)
6 => string 'bs-0919R (NO BSA)' (length=17)
我想丢弃所有内容,只保留以bs
开头的字符串。
最好的做法是什么?
答案 0 :(得分:3)
这样的事情:
$result = array_filter($array, function ($i) {
return strpos($i, 'bs')===0;
});
答案 1 :(得分:1)
我爱preg_grep
:
$result = preg_grep('/^bs/', $array);
答案 2 :(得分:1)
我同意@Casimir et Hippolyte。如果你知道你总是会有一个受控制的数据集,例如你的例子(罕见),你总是可以将字符串作为一个数组引用 - 它已经在引擎盖下了:
$result = array_filter($array, function ($v) {
return $v[0] . $v[1] == 'bs';
});
正则表达式是惊人的,并不是大多数情况下的性能问题,但是我遇到了一些问题,其中其他功能在计算时更快更有效。我理解这种说法对于大多数应用程序来说并不正确,但值得注意。