如何使用 regExp 在 PHP 数组中搜索子字符串

发布于 2024-12-11 07:27:06 字数 519 浏览 0 评论 0原文

   $array = array(
            array('foo_test1','demo_test1'),
            array('foo_test2','demo_test2'),
            array('blah_test1','exp_test1'),
            array('blah_test2','exp_test2'),
            array('foo_test3','demo_test3')
            )

如何使用 php 和 regExp 获取包含 foo 子字符串及其值的所有子数组。

预期输出:

$array = array(
        array('foo_test1','demo_test1'),
        array('foo_test2','demo_test2'),
        array('foo_test3','demo_test3')
        )
   $array = array(
            array('foo_test1','demo_test1'),
            array('foo_test2','demo_test2'),
            array('blah_test1','exp_test1'),
            array('blah_test2','exp_test2'),
            array('foo_test3','demo_test3')
            )

How to get all subarray which contains foo substring with its value using php and regExp.

Expected Output:

$array = array(
        array('foo_test1','demo_test1'),
        array('foo_test2','demo_test2'),
        array('foo_test3','demo_test3')
        )

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷清清 2024-12-18 07:27:06

你应该能够做到这一点

preg_grep($pattern,$array)

You should be able to do it with

preg_grep($pattern,$array)
紫轩蝶泪 2024-12-18 07:27:06
$input  = array( /* your array */ );
$output = array();

foreach ( $input as $data ) {
  $len = length($data);
  for ( $i = 0; $i < $len; ++$i ) {
    if ( strpos($data[$i], 'foo') > -1 ) {
      $output[] = $data;
      break;
    }
  }
}
$input  = array( /* your array */ );
$output = array();

foreach ( $input as $data ) {
  $len = length($data);
  for ( $i = 0; $i < $len; ++$i ) {
    if ( strpos($data[$i], 'foo') > -1 ) {
      $output[] = $data;
      break;
    }
  }
}
柒夜笙歌凉 2024-12-18 07:27:06
$array = array(
    array('foo_test1','demo_test1'),
    array('foo_test2','demo_test2'),
    array('blah_test1','exp_test1'),
    array('blah_test2','exp_test2'),
    array('foo_test3','demo_test3')
);

$search = 'foo';
$res = array();
foreach ($array as $arr) {
    foreach ($arr as $value) {
        if (preg_match('~'.preg_quote($search,'~').'~',$value)) {
        // if one of the values in that array
        // has the search word in it...
            $res[] = $arr; break;
            // push it into the $res and break
            // the inner foreach loop
        }
    }
}
print_r($res);
$array = array(
    array('foo_test1','demo_test1'),
    array('foo_test2','demo_test2'),
    array('blah_test1','exp_test1'),
    array('blah_test2','exp_test2'),
    array('foo_test3','demo_test3')
);

$search = 'foo';
$res = array();
foreach ($array as $arr) {
    foreach ($arr as $value) {
        if (preg_match('~'.preg_quote($search,'~').'~',$value)) {
        // if one of the values in that array
        // has the search word in it...
            $res[] = $arr; break;
            // push it into the $res and break
            // the inner foreach loop
        }
    }
}
print_r($res);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文