我怎样才能过滤数组并返回匹配项

时间:2016-05-06 10:51:45

标签: php arrays strpos array-filter

我想要返回“喜欢”别的东西。 我试过array_filter,但我无法正确使用它。

这是我尝试过的。 期望的出局是

  

one.php2000565,one.php999.php。   数组([0] =>   one.php2000565 [1]   => two.php [2] => three.php [3] => one.php999.php [4] => four.php)

userMeta.save().then(function(usermeta) {
        var signup = new model.SignUp({
          usermeta_id: usermeta.attributes.id
        });
        signup.save().then(function() {
          req.flash('success', 'Success!');
          res.redirect('/signup');
        }).catch(function(err) {
          res.status(500).json({error: true, data: {message: err.message}});
        });
      }).catch(function (err) {
        res.status(500).json({error: true, data: {message: err.message}});
      });

5 个答案:

答案 0 :(得分:1)

您可以尝试array_filter

{{1}}

答案 1 :(得分:1)

$res = array_filter($files, function($files) use ($search_program) {
    return ( strpos($files, $search_program) !== false );
});
print_r($res);

答案 2 :(得分:0)

您可以尝试以下解决方案: -

$example    = array([0] => one.php2000565[1] => two.php[2] => three.php[3] => one.php999.php[4] => four.php);
$searchword = 'one.php';
$matches    = array_filter($example, function($var) use ($searchword) { return preg_match("/\b$searchword\b/i", $var); });

它可能对你有帮助。

答案 3 :(得分:0)

您未指定array_filter的结果。 PHP的array_filter 返回修改后的数组。所以只需使用:

$array = array_filter($array, 
   function($a) use ($search_text) {
       return ( 
           strpos($a, $search_text) !== false 
       );
   }
)

答案 4 :(得分:0)

正如我已经评论说OPs代码与array_filter一起正常工作只需要在变量中分配过滤后的值。但我的解决方案可以替代array_filter而不是像{/ p>那样使用preg_grep

$res = preg_grep("/$search_text/",$array);
print_r($res);