1

以下代码按某些字段过滤数据库中的帖子。

array('key' => 'telephone', 'value' => '0','compare' => '>')

其他一些因素决定了这里是否可能有另一个数组。问题是解决该问题所需的代码将返回一个变量。$filters;

这可能吗

$filters = array('key' => 'mobile', 'value' => '0','compare' => '>')

array('key' => 'telephone', 'value' => '0','compare' => '>') . $filters

如果不是,这怎么可能工作。

澄清

这是函数需要它所在的结构。

    'meta_query' => array(
array('key' => 'telephone', 'value' => '0','compare' => '>'),
array('key' => 'mobile', 'value' => '0','compare' => '>')
                        ) 

但是我们不能这样写出来,因为其他因素决定了这些查询将是什么。我们必须得到类似于包含数组的变量才能进入“meta_query”数组。

4

2 回答 2

1

我想你正在尝试做array_merge()。有关详细信息,请参阅http://php.net/manual/en/function.array-merge.php,但它的工作方式如下:

$filters = array('key' => 'telephone', 'value' => '0','compare' => '>');
$filters = array_merge($filters, array('key' => 'telephone', 'value' => '0','compare' => '>'));
print_r($filters);
// array( 'key' => 'telephone', 'value' => '0', 'compare' => '>')
于 2012-06-08T17:05:24.587 回答
0

我假设您正在尝试在单个数组中传递多个过滤器。

使用.将不起作用,因为这是字符串连接操作。

将此用于数组数组:

$filters[] = array('key' => 'mobile', 'value' => '0','compare' => '>');
$filters[] = array('key' => 'telephone', 'value' => '0','compare' => '>');

要获得函数的正确格式,只需:

$meta['meta_query']=$filters;
于 2012-06-08T17:04:55.243 回答