默认关系为AND
所以你真的不需要指定,但我会告诉你怎么做。
实际上,您只是遇到了数组操作问题。
$amenities = array(\'a\',\'b\',\'c\');
$amenities2 = array(\'d\',\'e\',\'f\');
foreach ($amenities as $a)
{
$arrays[] = array(
\'key\' => \'amenities\',
\'value\' => $a,
\'compare\' => \'LIKE\'
);
}
foreach ($amenities2 as $a2)
{
$arrays2[] = array(
\'key\' => \'amenities\',
\'value\' => $a2,
\'compare\' => \'like\'
);
}
$meta_query = array(\'relation\' => \'AND\');
$meta_query[] = $arrays;
$meta_query[] = $arrays2;
var_dump($meta_query);
我还清理了你的代码。它过于复杂和破碎。这个
if
语句在数组上进行迭代时使用过度
$count = count($arrays);
没有必要排队,也没有像你那样做
count
在创建阵列之前对其进行初始化。即使它有效,您也有可能用一个值与另一个值碰撞。如果计数相等,则最终会覆盖数组的一部分,而不是添加到数组中。
当然,这不是组合最终数组的唯一方法。事实上,如果这是我的代码,我可能不会这样做。不过,这可能是最简单的演示方式。