这是我的数组
Array (
[0] => administrators (Members can fully administer the computer/domain)
[1] => SID: S-1-5-32-544
[2] => No members
[3] => backup operators (Members can bypass file security to back up files)
[4] => SID: S-1-5-32-551
[5] => No members
[6] => power users (Members can share directories)
[7] => SID: S-1-5-32-547
[8] => No members
[9] => john (qwerty)
[10] => SID: S-1-5-21-418404614-1514096366-3962945920-2147483748
[11] => Members:
[12] => \vijay
[13] => bishop (abcd)
[14] => SID: S-1-5-21-418404614-1514096366-3962945920-2147483748
[15] => Members:
[16] => \ram
[17] => \vijay
)
现在我想使用php中的任何preg函数从名为vijay的数组中搜索 它会在这个数组中搜索vijay,但我的问题是我需要搜索vijay,我想要输出就像vijay在哪里我需要在一个数组中的组名,如下所示 vijay在group1和group2中可用(array [9] nd array [13]) 所以我需要使用正则表达式输出如下所示
Array (
[0] => john
[1] => bishop
)
提前thnku,如果你没有得到任何问题PLZ评论我会清除你
答案 0 :(得分:1)
要做到这一点:
foreach ($your_array as $item){
if (strpos($item, 'group') !== FALSE){
echo $item;
}
if (strpos($item, 'vijay' !== FALSE){
echo $item;
}
}
这里是一个简单的解决方案,我现在无法测试它,但这是一个关于preg_match的想法,如果你想将结果发送到一个数组以便稍后在你的代码中操作,你可以使用它,< / p>
否则,如果您只需要以快速而肮脏的方式显示,则可以使用strpos,它将给出字符串中子字符串的位置(上例中的项目)
希望这会对你有所帮助,
PS:这只是一个例子,有多种方法可以获得它,这是最简单的方法之一......
编辑:
所以在这种情况下:
$groupName = "";
foreach ($your_array as $item){
if (strpos($item, '(') !== FALSE && strpos($item, ')') !== FALSE){
$groupName = $item;
}
if (strpos($item, 'vijay' !== FALSE){
echo "This user '$item' belongs to the group '$groupName'";
//Normally this structure keeps the same you don't need the next line:
$groupName = ""; //optional
}
}
此致
答案 1 :(得分:0)
我认为最简单的方法是在数组上创建一个foreach,然后在每个索引上使用函数pref_match:
文档:http://www.php.net/manual/fr/function.preg-match.php
希望这对你有帮助,
亲切的问候,
编辑:我也找到了这个可以帮助您的链接:How to search in an array with preg_match?