php - 在 PHP 中将数组转换为逗号分隔的数组。
问题描述
所以,我正在构建一个包含元查询的 wordpress 查询。
我从一些不同的早期函数中获得了一些元值,这似乎工作正常。
以 : 结尾$arrayOfVendors = array(92,85,72)
。
然后,我尝试使用 foreach 循环创建动态元查询。
这是通过遍历我的数组并通过值创建新数组来完成的。
$test2QueryStringArray = array();
foreach ($arrayOfVendors as $singleVendorObject) {
$test2QueryString = array(
'key' => 'products_vendor',
'compare' => 'LIKE',
'value'=> '"'.$singleVendorObject.'"',
);
array_push($test2QueryStringArray, $test2QueryString);
}
现在我的新数组应该由几个包含我想要的数组组成。
只需将其放入我的参数中,我就应该拥有我想要的一切
'meta_query' => array(
'relation' => 'OR',
$test2QueryStringArray
)
但是 - 我最终得到的是以下内容。
'meta_query' => array (
'relation' => 'OR',
0 => array (
0 => array (
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '92',
),
1 => array (
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '85',
),
2 => array (
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '72',
),
),
)
虽然正确的语法如下。
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '92',
),
array(
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '85',
),
array(
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '72',
),
),
基本上,我要做的是在 ACF 关系字段(可以选择多个供应商)中获取所有从阵列中选择供应商的帖子。
不知道如何从这里开始,我尝试过的所有东西要么因为数组到字符串的转换而死,要么根本没有给我预期的输出。
所以任何帮助将不胜感激<3
解决方案
有了这条线:
'meta_query' => array('relation' => 'OR',
$test2QueryStringArray
)
你正在推$test2QueryStringArray
入meta_query
阵列。因此,您可以获得额外的嵌套级别。你想要做的是合并:
'meta_query' => array_merge(array('relation' => 'OR'),
$test2QueryStringArray
)
推荐阅读
- html - HTML 图像不会加载
- swift - 快速从通用对象中获取 element.type
- breadth-first-search - 基于BFS的Tarjan算法
- azure - 我们如何防止 azure 函数处理已处理的 blob?
- twitter-bootstrap - 在 Aurelia-CLI 中导入 bootstrap 4 导致找不到模块
- google-search-console - 谷歌搜索控制台上的 robots.txt 错误限制的 URL
- angular - Angular 5 项目使用哪个 AngularCLI 版本
- regex - REGEX 匹配单行或多行
- php - 如何在 MySQL 数据库 PHP 7.2.1 的链接中打印变量?
- javascript - 单击同一按钮类上的事件,但在 jquery 中调用不同的操作