首页 > 解决方案 > 在 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

标签: phparrayswordpressmultidimensional-array

解决方案


有了这条线:

'meta_query' => array('relation' => 'OR',
                      $test2QueryStringArray
                      )

你正在推$test2QueryStringArraymeta_query阵列。因此,您可以获得额外的嵌套级别。你想要做的是合并:

'meta_query' => array_merge(array('relation' => 'OR'),
                            $test2QueryStringArray
                           )

推荐阅读