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 に答える