代码之家  ›  专栏  ›  技术社区  ›  Stender

在PHP中将数组转换为逗号分隔的数组。

  •  1
  • Stender  · 技术社区  · 6 年前

    因此,我正在构建一个包含元查询的wordpress查询。

    结果是: $arrayOfVendors = array(92,85,72) .

    这是通过在我的数组中循环,并通过值创建新数组来完成的。

    $test2QueryStringArray = array();
        foreach ($arrayOfVendors as $singleVendorObject) {
    
            $test2QueryString = array(
            'key' => 'products_vendor',
            'compare'   => 'LIKE',
            'value'=> '"'.$singleVendorObject.'"',
            );
    
            array_push($test2QueryStringArray, $test2QueryString);
        }
    

    只要把它放进我的args,我就应该拥有我想要的一切

    '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关系字段中获取所有从阵列中选择供应商的帖子(在这里可以选择多个供应商)

    我不知道如何从这里开始,我尝试过的一切,要么因为数组到字符串的转换而消亡,要么根本就没有给我预期的输出。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Nick    6 年前

    这一行:

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

    你在推 $test2QueryStringArray 进入 meta_query 数组。因此,您可以获得额外的嵌套级别。您要做的是合并:

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