2012-06-08 24 views
1

以下代码按特定字段从数据库中过滤帖子。PHP变量确定数组函数..可能吗?

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'数组。

+1

要合并两个数组还是什么? – alexn

+1

您可能正在寻找[array_merge](http://php.net/array_merge),或者查看[array operators](http://php.net/manual/en/language.operators.array.php)可以使用'+'号来创建2个数组的联合。 – drew010

回答

0

我假设你正试图在一个数组中传递多个过滤器。

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

使用此数组的数组:

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

得到正确的格式简单的功能:

$meta['meta_query']=$filters; 
+0

如果可以帮助,添加一些更多的信息 –

+0

适用于我的几个修改...好东西 –

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' => '>') 
+0

增加了一些更多的信息来澄清。 –