我有一个类似
的数组$arr = array("arif", "arin", "asif", "armin", "arpan");
我想搜索并获取符合正则表达式的元素的索引。
在这种情况下,我想获得与我的模式匹配的索引0, 1, 3, 4
$regex = '|^ar|';
答案 0 :(得分:0)
循环遍历数组中的每个项目,测试正则表达式是否匹配使用preg_match
项目,如果匹配,则将索引添加到另一个索引数组。如果它不匹配,只需继续。你将留下一系列指数。
struct A {
// ...
int fi;
ret_t f(base& b) { switch (this->fi) {
case 1 : return f1(b);
case 2 : return f2(b);
case 3 : return f3(b);
}
};
答案 1 :(得分:0)
在迭代输入数组时使用preg_match
函数:
$arr = array("arif", "arin", "asif", "armin", "arpan");
$keys = [];
foreach ($arr as $k => $item) {
if (preg_match('/^ar/', $item)) $keys[] = $k;
}
print_r($keys);
输出:
Array
(
[0] => 0
[1] => 1
[2] => 3
[3] => 4
)
答案 2 :(得分:0)
使用preg_grep()
:
<?php
$arr = array("arif", "arin", "asif", "armin", "arpan");
$regex = '|^ar|';
$res = array_keys(preg_grep($regex, $arr));
var_dump($res);