作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
编辑:我的意思是问获得第一场比赛或第一场比赛的最佳/最快方法是什么。
我有一个数组
$arr = ('abc', 'ded', 'kjld', 'abr', 'cdfd');
我想先洗牌
这个数组,然后只检索与模式/ab/
匹配的第一个值。因此,返回值可能是 abc 或 abr。
我查看了 preg_grep
,但它会返回一个包含所有匹配项的数组。当然,我可以只检索结果数组的第一个值,但这很浪费,而且需要额外的数组操作步骤。是否有另一个函数或 preg_grep
开关指定仅返回第一个匹配值(或前 5 个匹配值)。我查看了 preg_match
和 preg_search
,但它们似乎没有提供我想要的内容。
最佳答案
您可以遍历数组并在找到匹配项时使用 break
结束循环:
foreach($arr as $value) {
if(preg_match($pattern,$value)) {
$return_string=$value;
break;
}
}
指定限制:
$limit=3;
$i=0 // sets the number of returned results to 0
$results=array();
foreach($arr as $value) {
if(preg_match($pattern,$value)) {
// add the result into the array and increment the counter
array_push($results,$value);
$i++;
} if ($i=$limit) break;
}
然后您可以使用另一个 foreach 循环来返回您的值,例如:
if(count($results)>0)
foreach ($results as $result) {
echo $result;
} else echo "No results found";
关于php - 如何只获取数组中第一个匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9589151/
我是一名优秀的程序员,十分优秀!