$data[0] = "TESTaabsc";
$data[1] = "ffgaabsc";
$data[2] = "TESTffga";
for($i=0; $i<sizeof($data); $i++)
{
if (!is_null($data[$i][0]) && (???))
{
//...
}
}
如何从$data
中检索包含前缀TEST
的那些条目?
答案 0 :(得分:3)
使用strpos()
:
for($i=0; $i<sizeof($data); $i++)
{
if(strpos($data[$i], 'TEST') === 0)
{
// $data[$i] has the prefix
}
}
或者要在新数组中获取匹配项,您可以使用array_filter()
:
$result = array_filter($data, function($var){
return strpos($var, 'TEST') === 0;
});
print_r($result); // $result is an array containing the matches only
答案 1 :(得分:2)
使用array_filter()
$results = array_filter($data, function ($value) {
return 0 === strpos($value, 'TEST');
});
或者如果您熟悉正则表达式,请尝试preg_grep()
$results = preg_grep('/^TEST/', $data);
不同之处在于strpos()
可能比preg_grep()
更快,因为正则表达式可能很昂贵。这一切都取决于您正在搜索的数据大小。
答案 2 :(得分:0)
正常表达救援!
$filtered = preg_grep ('/^TEST/', $data);
答案 3 :(得分:-1)
你可以这样做:
if (!is_null($data[$i][0]) && strpos($data[$i], 'TEST')) {
//...
}
这样做是检查哪个位置数据[$ i]包含字符串'TEST'。如果未找到,则返回false。