使用for循环在数组内部

时间:2016-09-29 15:52:19

标签: php arrays wordpress foreach

我正在使用php进行wp查询。

首先,我需要使用此

获取一系列帖子ID
$artists_ID_array = get_field("page_artiste");

(我使用高级自定义字段与关系,无论如何它并不重要......我得到了一系列值)

这是数组的样子:

数组([0] => 141 [1] => 59)

然后来了我的args:

$videos = get_posts(
    array(
        'post_type' => 'videos',
        'post__not_in' => array( $post->ID ),

            'meta_query' => array(

            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[0],
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[1],
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[2],
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[3],
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[4],
                'compare' => 'LIKE'

依旧...在我的元查询中,我使用了所有数组结果。

它工作正常,我得到了我想要的帖子。

但是你可以想象我想要做的就是为每个人使用以避免在我的args" $ artists_ID_array [4]"中使用所有数组,并在我的数组中循环

所以这就是我尝试过的,但它不起作用......我无法理解为什么......

<?php 

$artists_ID_array = get_field("page_artiste");

$videos = array(
        'post_type' => 'videos',
        'post__not_in' => array( $post->ID ),
            'meta_query' => array(

    )
);

foreach($artists_ID_array as $value) {
    array_push($videos['meta_query'], array(
                'key' => 'page_artiste',
                'value' => $value,
                'compare' => 'LIKE'
    ));

}

?>

任何人都可以帮我这个吗? 希望你理解我的要求

1 个答案:

答案 0 :(得分:1)

我相信你可以进一步简化这一点,因为meta_query比较允许你使用值“IN”

“IN”(而非类似)允许您搜索给定数组中任何值的值。

所以你的get_posts看起来像这样:

$videos = get_posts(
  array(
    'post_type' => 'videos',
    'post__not_in' => array( $post->ID ),

     'meta_query' => array(

        array(
            'key' => 'page_artiste',
            'value' => $artists_ID_array,
            'compare' => 'IN'
        )
     )
   )
 );