【thinkphp】3.2二维数组模糊查询

2018-04-28 14:54:06 浏览数 (1)

我们在做数据列表的时候 把文章列表数据缓存到缓存里 取出来大概的结构是这样的

代码语言:javascript复制
Array
(
    [0] => Array
        (
            [id] => 16
            [title] => oupoipoipoipoip
            [keywords] =>oupoipoipoipoip
        )
    [1] => Array
        (
            [id] => 15
            [title] => qweqweqweqweqwe
            [keywords] => qweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqwe
        )
    [2] => Array
        (
            [id] => 14
            [title] => asdasdasdasdasd
            [keywords] =>asdasdasdasdasd
        )
    [3] => Array
        (
            [id] => 13
            [title] => zxczczxczxc
            [keywords] => zxczczxczxc
        )
    [4] => Array
        (
            [id] => 12
            [title] => rtyrtyrtyrtyrtyr
            [keywords] => rtyrtyrtyrtyrtyr
        )
)

这样我们进行模糊查询  百度好久 最终在tp官网看到一个代码 http://www.thinkphp.cn/code/3030.html 但是这位小哥的有个问题 我想查询多个字段匹配的时候就不行了 只能是固定的一个 稍微修改了一下他的代码

代码语言:javascript复制
/**
 * @文章列表搜索
 * @2017年4月25日15:13:52
 */
function arrList($arrs,$keywords=NULL,$type=array('title')){
    foreach ($arrs as $key => $searchData) {
        $arr = array();
        foreach($searchData as $values=>$v ) {
            for ($i=0;$i<count($type);$i  ){
                if ($values==$type[$i]){
                        array_push($arr, $values);                
                }
            }
        }
        for ($a=0;$a<count($arr);$a  ){
            if (strpos($searchData[$arr[$a]],$keywords)) {
                $result[] = $searchData;
            }           
        }
    } 
    return $result;
}

调用方法

代码语言:javascript复制
arrList($newsList,'1',array('title','keywords'));

0 人点赞