首页 > 解决方案 > 未命名的数组中的Wordpress和PHP循环?

问题描述

希望这是一个简单的问题。当循环未命名时,我找不到关于如何在数组中定位数组的答案。例如,我最终需要得到这样的结果:

      $args = array(
            'role' => 'artist',
            'orderby' => 'meta_value',
            'order' => 'ASC',
            'meta_query' => array(
                'relation' => 'AND',
                array(
                    'relation' => 'OR',
                    // $medium_array,
                    array(
                        'key' => 'artist_medium',
                        'value' => 'Wood',
                        'compare' => 'LIKE',
                    ),
                    array(
                        'key' => 'artist_medium',
                        'value' => 'Painting',
                        'compare' => 'LIKE',
                    )
                ),
                array(
                    'key' => 'studio_region_location',
                     'value' => 'London',
                     'compare' => 'LIKE',

)
            )
        );

我一直在做的是成功地循环到 $meta_query[],但我不知道如何进入“meta_query”中的第二个数组。我尝试了以下但没有运气:


$_POST['mediumType'] = array('Wood', 'Painting');
$_POST['locationType'] = array('London');

 $meta_query = array(
            'relation' => 'AND',
            array('relation' => 'OR')
        );

        foreach ($_POST['mediumType'] as $val){
            $meta_query[][] = array(
                'key' => 'artist_medium',
                'value'=> $val,
                'compare' =>'LIKE'
            );
        }

        foreach ($_POST['locationType'] as $loc){
            $meta_query[] = array(
                'key' => 'studio_region_location',
                'value'=> $loc,
                'compare' =>'LIKE'
            );
        }

所以希望有人能帮忙。我知道我在这里遗漏了一些明显的东西,但是通过谷歌搜索,我只能找到如何定位该子数组(如果它被命名)。这是 print_r 报告的上述代码提供的内容:

Array ( [role] => artist [orderby] => meta_value [order] => ASC [meta_query] => Array ( [relation] => AND [0] => Array ( [relation] => OR ) [1] => Array ( [0] => Array ( [key] => artist_medium [value] => Fabric - decorative [compare] => LIKE ) ) [2] => Array ( [0] => Array ( [key] => artist_medium [value] => Metal [compare] => LIKE ) ) [3] => Array ( [key] => studio_region_location [value] => Dublin / Marlborough / Jaffrey [compare] => LIKE ) ) ) 

谢谢!

标签: phparrayswordpress

解决方案


我明白了,感谢大家的帮助。:) 数字假键名有效!

 foreach ($_POST['mediumType'] as $val){
            $meta_query[0][] = array(
                'key' => 'artist_medium',
                'value'=> $val,
                'compare' =>'LIKE'
            );
        }

推荐阅读