数组转换成逗号分隔的PHP数组。

时间:2018-11-26 11:50:16

标签: php arrays wordpress multidimensional-array

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

我从一些早期的不同函数中获得了一些元值,这似乎很好用。

最后是:uploadImageAsPromise (imageFile) { const self = this; return new Promise(function (resolve, reject) { var storageRef = firebase.storage().ref("/imagestestnew/"+imageFile.name); //Upload file var task = storageRef.put(imageFile); //Update progress bar task.on('state_changed', function progress(snapshot){ var percentage = snapshot.bytesTransferred / snapshot.totalBytes * 100; console.log("percentage" + percentage) self.progressUpload = percentage; }, function error(err){ console.log("error") }, function complete(){ console.log("done") var downloadURL = task.snapshot.downloadURL; } ); }); }

然后,我尝试创建一个带有foreach循环的动态元查询。

这是通过遍历数组并根据值创建新数组来完成的。

$arrayOfVendors  = array(92,85,72)

现在,我的新数组应该由包含我所需内容的几个数组组成。

通过将其放入我的参数中,我应该拥有我想要的一切

$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',
        ),
    ),
)

基本上,我想做的是在ACF关系字段(可以选择多个供应商)中获取从阵列中选择供应商的所有帖子。

不知道如何从这里继续进行,我尝试过的所有方法,要么由于从数组到字符串的转换而死亡,要么根本没有给我预期的输出。

因此,我们将不胜感激<3

1 个答案:

答案 0 :(得分:3)

此行:

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

您正在将$test2QueryStringArray推入meta_query数组。因此,您可以获得额外的嵌套层次。您想要做的是合并:

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