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

标签 php arrays

<分区>

$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

关于php - 搜索包含字符串的 PHP 数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315536/

相关文章:

javascript - 如何在 Javascript 中获取数组中所有相同类型的对象?

当数组值为零而不是空时,c 循环停止

java - 从方法分配一个数组

php - 当绑定(bind)变量难以使用时如何对抗SQL注入(inject)漏洞?

php - PHP 中的转义字符和保留

php - Codeigniter $this->email->send() 在 mail() 时不工作

java - 创建对象堆栈类 - 我哪里出错了?

php - 如何编写查询以抑制结果集列中的连续重复值?

php - 相当于 PHP preg_replace 的 JavaScript

javascript - 通过 jQuery 中的条件迭代创建一个组合两个现有对象的新数组