当前位置: 首页 > 面试题库 >

搜索包含字符串的PHP数组元素

柳鸿博
2023-03-14
问题内容
$example = array('An example','Another example','Last example');

如何在上面的数组中松散搜索“ Last”一词?

echo array_search('Last example',$example);

上面的代码仅在指针与值中的所有内容完全匹配时才回显值的键,这是我不想要的。我想要这样的东西:

echo array_search('Last',$example);

如果值包含单词“ Last”,我希望值的键回显。


问题答案:

要查找符合搜索条件的值,可以使用array_filter函数:

$example = array('An example','Another example','Last example');
$searchword = 'last';
$matches = array_filter($example, function($var) use ($searchword) { return preg_match("/\b$searchword\b/i", $var); });

现在,$matches数组将仅包含原始数组中包含单词 last (不区分大小写)的元素。

如果需要查找与条件匹配的值的键,则需要遍历数组

$example = array('An example','Another example','One Example','Last example');
$searchword = 'last';
$matches = array();
foreach($example as $k=>$v) {
    if(preg_match("/\b$searchword\b/i", $v)) {
        $matches[$k] = $v;
    }
}

现在,数组$matches包含原始数组中的键/值对,其中值包含(不区分大小写)单词 last



 类似资料:
  • 问题内容: 我正在尝试使用以下命令搜索字符串(带点) 但是,什么情况是,我也越来越其中包含字符串不想要的结果,例如,等等,。问题是linux将dot(。)视为任何字符并得出所有结果。但是我只想得到“ 0.49”的结果。 问题答案: 使用正则表达式;在正则表达式中表示“任何字符”。如果你想有一个文本字符串,使用,或逃避到。 不要忘记将字符串用双引号引起来。否则你应该使用 因此,您的命令将需要是: 要

  • 问题内容: 如何搜索以关键字开头的字符串数组? 例如, 当我的搜索字符串必须显示时 当我的搜索字符串是那么。 问题答案: 交换为您只希望寻找遏制。

  • 问题内容: 在我的查询中,我想找到与许多LIKE运算符之一匹配的行。我知道这样做的3种方法,但是只有其中一种可以使用索引。 让我们从表开​​始: 插入样本数据后,我可以执行以下操作: 以上查询正确使用索引。 第二种方式: 该查询将不使用索引。我知道的最后一种方法: 与上一个查询类似,该查询将不使用索引。 这是SQL Fiddle,适用于那些想如何使用这些查询的人:http : //sqlfiddl

  • 问题内容: 如果我有一个简单的集合,例如: 如果我要搜索含有维生素B6的水果,则可以执行以下操作: 这样一来,我便可以看到我收藏的所有含有维生素A的水果。但是,我如何能够搜索含有多种维生素(例如维生素B6和C)的水果?我不能简单地搜索,因为那样会寻找数组,而不是独立的字符串。 在Cloud Firestore中甚至有可能吗?如果没有,还有其他替代方法吗? 问题答案: 通过在查询中链接条件来寻找匹配

  • 在Cloud Firestore中这甚至是可能的吗?如果没有的话,有没有其他方法可以做到这一点?