根据搜索值的部分匹配来过滤多维数组
在某些场景下,需要根据搜索值的部分匹配来过滤存储在多维数组中的数据指定搜索值的部分匹配。
假设我们有一个结构为的数组如下:
$array = [ [ 'text' => 'I like Apples', 'id' => '102923' ], [ 'text' => 'I like Apples and Bread', 'id' => '283923' ], [ 'text' => 'I like Apples, Bread, and Cheese', 'id' => '3384823' ], [ 'text' => 'I like Green Eggs and Ham', 'id' => '4473873' ] ];
假设我们要搜索特定的针,例如“面包”。要过滤数组并检索包含部分匹配的元素,我们可以利用 array_filter 函数。
$search_text = 'Bread'; $filtered_array = array_filter($array, function($element) use ($search_text) { return (strpos($element['text'], $search_text) !== false); });
array_filter 函数接受两个参数:输入数组和回调函数。回调函数负责评估是否应保留或从数组中删除每个元素。在我们的例子中,回调函数检查元素的“文本”字段是否包含指定的搜索词。如果是,则返回 true,表示应保留该元素。
执行后,filtered_array 将包含以下元素:
[ [ 'text' => 'I like Apples and Bread', 'id' => '283923' ], [ 'text' => 'I like Apples, Bread, and Cheese', 'id' => '3384823', ] ]
此方法有效过滤多维数组,返回仅满足部分匹配条件的元素。
以上是如何在 PHP 中使用部分字符串匹配来过滤多维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!