加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php - 带有或语句的php多键值过滤器

发布时间:2023-01-08 15:00:59 所属栏目:PHP教程 来源:转载
导读: 我一直在到处寻找这个,但我不确定是否可以这样做。但我希望有人能指出正确的方向。
我从mysql获取多维数组。我需要过滤此数组,所以我正在使用以下代码
$filter = new MultipleKeyValueFi

我一直在到处寻找这个,但我不确定是否可以这样做。但我希望有人能指出正确的方向。

我从mysql获取多维数组。我需要过滤此数组,所以我正在使用以下代码

$filter = new MultipleKeyValueFilter(array(
    'sex' => '1',
  'age' => '4'
));
print_r(array_filter($ads_array, array($filter, 'filter')));

如您所见,我已设置了过滤器值,但我需要这些值来执行类似的操作

$filter = new MultipleKeyValueFilter(array(
    'sex' => '1' or '0',
  'age' => '4'
));
echo "Filtered by multiple fields\n";
print_r(array_filter($ads_array, array($filter, 'filter')));

如您在上面的代码中看到的,我想将它们都保留在数组中。该字段可以为1或0,两者都很好。但是当我尝试这个时我什么也没得到。所以看来我不能使用orPHP过滤器,也不能||。

我应该如何处理这个问题。我怎样才能接受两个值作为一个好的结果?

我正在使用的其他代码是这些

class MultipleKeyValueFilter implements Filter {
    protected $kvPairs;
    public function __construct($kvPairs) {
        $this->kvPairs = $kvPairs;
    }
    public function filter($item) {
        $result = true;
        foreach ($this->kvPairs as $key => $value) {
            if ($item[$key] !== $value)
                $result &= false;
        }
        return $result;
    }
}
class MultipleKeyComparator implements Comparator {
    protected $keys;
    public function __construct($keys) {
        $this->keys = $keys;
    }

我希望我在这里有一点道理。

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!